我是C++的新手。我想聲明一個對象作爲另一個類的私有成員。該對象的實例化是否可以使用默認構造函數完成?樣本代碼這裏列出:將對象實例化爲沒有默認構造函數的類成員
class Vertex{
int i;
public:
Vertex(int j):i(j){};
Vertex(const Vertex & v){i=v.i;};
}
class Test{
Vertex v;
public:
Test(const Vertex & v1){v(v1);}
}
int main()
{//some code here;
Vertex v1(int j=1);
Test(v1); // *error: no matching function for call to 'Vertex::Vertex()'*
return 0;
}
在我看來,一旦宣佈一個對象作爲私有類成員(例如頂點v),默認的構造函數立即追捧。無論如何要避免這一點?非常感謝。
感謝您的回答。但是如果Test類還包含一個矢量容器,並且在構建一個Test對象期間需要將對象v1推入容器? – Void