假設我們有一個兩個班指向的返回值
class A
{
public:
Course (int num) ;
int getAnum();
int num;
}
A::A(int num)
{
this->num = num;
}
int A::getAnum()
{
return this->num;
}
,並在主
A* a = new A(12);
B* b = new B(a);
其他類
class B
{
public:
B (A * a = NULL);
A * getA();
A * a;
}
B::B(Course * a)
{
this->a = new A;
this->a = a;
}
A * B::getA() { return this->a; }
,問題是我怎麼能打印號碼
cout << b.getA->getAnum();
或
cout <<b.a->getAnum();
哪一個是正確的?我可以通過返回值指向另一個函數嗎?這兩個代碼示例中會發生什麼?爲什麼?請不要注意語法錯誤。對不合適的代碼和糟糕的英語感到抱歉。謝謝你的回答:)
代碼段中有多少個編譯錯誤! – 2012-10-19 00:00:07
@Desolator:我數四。你有多少人? –
需要多長時間才能找出爲什麼b.getA() - > getAnum()是因爲B對象默認構造爲NULL A而導致分段錯誤?你不妨再仔細思考這個設計。 – WhozCraig