[問題] 物件指標/記憶體問題
我在第二個class,B的建構子
試著傳入物件記憶體位置(因為不想傳整份物件,會太大)
建構子裡面的ab可以讀到正確的x值(100)
但是f2()讀到的ab,是還未設定的private變數ab
所以印出亂數
我希望能將B(A &ab),指給B.ab
請問該怎麼指標?
謝謝
程式及印出結果如下:
// A.h
class A{
public:
int x;
A(){}
A(int x){ this->x = x; }
void f1(){ printf("x=%d\n", x); }
};
class B{
public:
B(A &ab){
ab.f1();
f2();
}
private:
A ab;
void f2(){ ab.f1(); }
};
// aaa.cpp
int main(){
A a1(100);
B b(a1);
return 0;
}
//印出:
x=100
x=2293576
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.180.76
推
04/06 13:59, , 1F
04/06 13:59, 1F
→
04/06 14:01, , 2F
04/06 14:01, 2F
問題已解決
看來B的private裡面宣告成
A *ab;
void f2(){ (*ab).f1(); }
constructor裡面加一行
this->ab = &ab;
即可
※ 編輯: Leeng 來自: 61.230.180.76 (04/06 14:16)
推
04/06 23:21, , 3F
04/06 23:21, 3F
推
04/06 23:43, , 4F
04/06 23:43, 4F
→
04/06 23:44, , 5F
04/06 23:44, 5F