Avatar billede bentblod Nybegynder
04. januar 2005 - 14:26 Der er 26 kommentarer og
2 løsninger

Newbie til c++

Hej, jer er godt igang med at lære c++, først vil jeg lave et objekt af en klasse og sætte diverse informationer ind i den, og behandle det som objekt og sådan... Men kan ikke få den til at bruge string, forstår det ikke lige, nogen der gider kigge på min kode og evt. lige sige hvor fejlen er?

-----------bil.h-------------

class Bil
{
private:
  string navn;
  int maxFart;
  int pris;
public:
  void setNavn(string navn);
  void setMaxFart(int maxFart);
  void setPris(int pris);
  void toString();
};

----------bil.cpp---------

#include<iostream>
#include"bil.h"
using namespace std;

void Bil::setMaxFart(int nMaxFart){
  maxFart = nMaxFart;
}   
void Bil::setNavn(string nNavn){
  navn = nNavn;
}   
void Bil::setPris(int nPris){
  pris = nPris; 
}   
void Bil::toString(){
cout<<"Navn: " <<navn<<endl;
cout<<"Max fart: " <<maxFart<<endl;
cout<<"Pris: " <<pris<<endl; 
}   

----------brugbil.h----------

Bil bil;

----------brugbil.cpp--------

#include"bil.h"
#include"brugbil.h"
int main(){
  bil.setMaxFart(250);
  bil.setNavn(121);
  bil.setPris(200000);
  bil.toString();
}
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:29 #1
include <string> i bil.h
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:32 #2
Nu brokker den sig over: #include"bil.h" i bil.cpp
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:35 #3
prøv lige at include <string> i bil.cpp istedet for
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:37 #4
virker heller ikke, har prøvet at include det alle steder og den brokker sig stadig over bil.h
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:38 #5
øh.... der er et mellemrum mellem #include og "bil.h" ?
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:39 #6
nej er der ikke. Koden virker fint hvis jeg ændre string til int alle steder. Er kun den String der driller :( forstår det ikke :(
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:41 #7
dooh..... (tror jeg har fundet din fejl)
ændre:
bil.setNavn(123)
til:
bil.setNavn("123");
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:41 #8
Hehe har jeg ændret efter jeg copy pastede den så er heller ikke den :(
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:44 #9
hvilken compiler bruger du?
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:45 #10
dev-c++4.9.9.1
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:49 #11
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string S1;
    string S2("Hello");
    string S3("Hello from About");
    string S4(S3);

    cout << "S2: " << S2 << endl;
    cout << "S3: " << S3 << endl;
    cout << "S4: " << S4 << endl;

    S1 = S2;

    cout << "S1: " << S1 << endl;

    S1 = S3;
    cout << "S1: " << S1 << endl;

    return 0;
}
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:50 #12
prøv lige at køre dette kode og se om det virker?
Avatar billede bentblod Nybegynder
04. januar 2005 - 14:54 #13
Det virker fint nok
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 14:59 #14
men programmet(dit eget) compiler korrekt lige nu?
Avatar billede bentblod Nybegynder
04. januar 2005 - 15:01 #15
det du copy pastede virker fint nok, men min egen kode som jeg copy pastede melder stadig fejl, så er stadig fejl et sted.
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 15:02 #16
hvilken fejl melder det??
Avatar billede bentblod Nybegynder
04. januar 2005 - 15:02 #17
Er nu mest som eksempel, så jeg har noget at bygge klasser op fra. Hvis du gider må du også godt lave et eksempel på hvordan man henter og sætter informationer fra klasser. :)
Avatar billede bentblod Nybegynder
04. januar 2005 - 15:03 #18
#include"bil.h" i bil.cpp filen melder den fejl i
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 15:11 #19
------------------ bil.h --------------------------------
#include <iostream>
#include <string>

class Bil
{
private:
  string navn;
  int maxFart;
  int pris;
public:
  Bil(void);
  ~Bil(void);
  void setNavn(string navn);
  void setMaxFart(int maxFart);
  void setPris(int pris);
  void udskriv();
};

-------------------- bil.cpp ---------------------------
#include "bil.h"

Bil::Bil(void) {}
Bil::~Bil(void) {}
void Bil::setMaxFart(int nMaxFart){
  maxFart = nMaxFart;

void Bil::setNavn(string nNavn){
  navn = nNavn;

void Bil::setPris(int nPris){
  pris = nPris;

void Bil::udskriv(){
std::cout << "Navn: " << navn << std::endl;
std::cout << "Max fart: " << maxFart << std::endl;
std::cout << "Pris: " << pris << std::endl;
}   

-------------------- brugbil.cpp ----------------------
#include"bil.h"
int main(){
  Bil min_bil;
  min_bil.setMaxFart(250);
  min_bil.setNavn(121);
  min_bil.setPris(200000);
  min_bil.udskriv();
}
Avatar billede bentblod Nybegynder
04. januar 2005 - 15:24 #20
skal min_bil.setNavn(121); ikke være min_bil.setNavn("121"); ??
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 15:26 #21
jo.... dooh.... havde ændret det :-)
Avatar billede bentblod Nybegynder
04. januar 2005 - 16:58 #22
Hmm ok nu har jeg lagt det hele ind og den siger nu stadig at der er fejl i bil.h
:/
Avatar billede arne_v Ekspert
04. januar 2005 - 19:07 #23
Hvad med:

------------------ bil.h --------------------------------
#include <iostream>
#include <string>

using namespace std; // <----

class Bil
...
Avatar billede bentblod Nybegynder
04. januar 2005 - 19:11 #24
nice!! der var den jo :D skriv lige som svar arne :) Og endnu engang tak for hjælpen :)
Avatar billede arne_v Ekspert
04. januar 2005 - 19:13 #25
OK

men jeg synes da at rbj_fp også har fortjent
Avatar billede bentblod Nybegynder
04. januar 2005 - 19:24 #26
i kan bare dele de mange points, så rbj skriv også lige som svar :)
Avatar billede rbj_fp Nybegynder
04. januar 2005 - 21:11 #27
Et svar.... og de simpleste ting bliver altid overset :-D
Avatar billede bentblod Nybegynder
05. januar 2005 - 00:44 #28
hehe yeps :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester