10. oktober 2003 - 18:31
Der er
10 kommentarer og 1 løsning
getters (pointere)
så er den gal igen jeg har følgende getter list<double> TrustValue::getList() { return list; } hvor list er defineret i header filen som list<double> list; Dette virker ikke efter hensigten( dvs object.list og object.getList() indeholder ikke det samme når jeg skriver det ud) Hvad er der galt?
Annonceindlæg fra Salesforce
10. oktober 2003 - 18:46
#5
hmm jeg ved ikke hvad der skete der, jeg prøver igen 1) void f(Obj* o) { o->func(); } 2) void f(Obj& o) { o.func(); } 3) void f(Obj o) { o.func(); } Hvad er forskellen på 2 og 3?
10. oktober 2003 - 20:14
#7
Tak Arne, lige inden vi lukker: Dvs #3 kan/bør helt undgås hvis man prøver at programmere a la Java? (læg også lige et svar da du har svaret på det oprindelige spørgsmål)
10. oktober 2003 - 20:31
#10
#include <iostream> using namespace std; class C { private: int v; public: C(int v) { this->v = v; }; int GetV() { return v; }; void SetV(int v) { this->v = v; }; }; void test1(C* o) { cout << o << endl; o->SetV(1234); return; } void test2(C& o) { cout << &o << endl; o.SetV(12345); return; } void test3(C o) { cout << &o << endl; o.SetV(123456); return; } int main() { C *o = new C(123); cout << o << endl; cout << o->GetV() << endl; test1(o); cout << o->GetV() << endl; test2(*o); cout << o->GetV() << endl; test3(*o); cout << o->GetV() << endl; return 0; } giver: 0x3f2c48 123 0x3f2c48 1234 0x3f2c48 12345 0x22ff50 12345 og det ses tydeligt at #3 er noget speciel !