我有一个class Piece
默认构造函数has private
,我想在创建对象时只使用特定的构造函数:
class Piece
{
private:
Piece();
public:
Piece (int var1, int var2);
~Piece();
}
现在我有一个class Game
具有vector of Pieces
:
class Game
{
private:
std::vector<Piece> m_pieces;
public:
Game();
~Game();
CreatePieces(); //<-- only here, I will create the Piece objects, not in the constructor
}
现在,我想要一个class Foo
包含的Piece
:
class Foo
{
private:
Piece m_piece;//ERROR!!! cannot access private member declared in class 'Piece'
public:
Foo();
~Foo();
}
我的问题:
现在我需要使用默认的构造函数m_piece
上Foo class
。但我想避免这种情况,并像在上使用一样使用Game class
。
有反正我可以保持我的Piece class
,因为它是,并创建一个Piece object
,像Foo class
,但与构造函数初始化它Piece (int var1, int var2);
在我的Foo()
构造函数?
您可以m_piece
在Foo
构造函数中初始化以调用特定的构造函数,例如:
class Foo
{
Foo() : m_piece(0,0)
{
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句