我需要構建一組相互依賴的類。當我將一個類的指針傳遞給另一個在其中實例化的類時,我遇到了麻煩。如何取消引用另一個對象內的對象的指針
這裏舉一個例子來說明我的問題。
#include<iostream>
#include<vector>
using namespace std;
class base;
//
child class
class child
{
public:
child(){};
void setPointer (base* ptr){pointer = ptr; }
void printing(){(*pointer).print();} // error C2027: use of undefubed type base
// error C2227: '.print' must have class/struct/union
private:
base* pointer;
};
// base class
class base
{
public:
base()
{
initial_vec();
VEC[0].setPointer(this);
VEC[0].printing();
}
void print() { cout <<"printing from BASE"<< endl;}
void initial_vec()
{
child child1;
VEC.push_back(child1);
}
private:
vector<child> VEC;
};
int main()
{
base b1;
system("pause");
return 1;
}
你知不知道我是如何實現這些功能的?
預先感謝您
您不能從內聯代碼中取消引用前向聲明。這必須展示給一個單獨的翻譯單位。 –