C ++-如何在另一个类中使用私有构造函数实例化对象

waas1919

我有一个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_pieceFoo class但我想避免这种情况,并像在上使用一样使用Game class

有反正我可以保持我的Piece class ,因为它是,并创建一个Piece object,像Foo class,但与构造函数初始化它Piece (int var1, int var2);在我的Foo()构造函数?

乔纳森·波特(Jonathan Potter)

您可以m_pieceFoo构造函数初始化以调用特定的构造函数,例如:

class Foo
{
    Foo() : m_piece(0,0)
    {
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 C++ 中使用具有另一个类对象的构造函数?

如何在 C# 中使用来自另一个类的初始化实例对象?

C ++实例化对象,该对象在另一个没有指针的类构造函数中没有默认构造函数

另一个类的c ++私有对象:初始化并使用它调用该类中的函数

C#如何在一个函数中创建类的实例,然后在另一个函数中使用相同的实例

如何在C ++中的另一个模板函数中使用属于模板化类的嵌套类型?

如何在C#中从另一个私有类调用私有类变量

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

C# 在另一个构造函数中使用构造函数

如何在C ++中将私有整数从A类传递到B类中的另一个Int变量

C ++-从另一个类构造函数调用一个类构造函数

当可以在另一个对象中更改一个对象时,如何在C ++中使用析构函数

从私有void函数c#中的另一个类访问变量

我如何在 C# 中访问另一个类中的私有变量

C#:如何在另一个类中使用可索引属性?

如何在 C# 中使用另一个类更改变量

如何在 c# 中使用方法(如果可能)实例化一个类?

如何在C中的另一个函数中使用局部变量的值

C ++中带有另一个模板类作为参数的构造函数

如何独立于 C++ 中声明的位置在另一个类函数中使用类?

C ++:如何将一个对象传递给另一个对象构造函数?

如何在另一个 Python 类构造函数中使用 __enter__ 方法实例化 Python 类

在 C# 中使用属性值作为另一个对象的实例名称

C#| 使用另一个实例的属性初始化新对象的语法

如何在另一个函数中使用在函数内部声明的变量?(C#) UnassignedReferenceException: 变量 inRay 没有被赋值

使用另一个类C ++构造一个类

如何在 C++ 中将一个类的实例完全重新分配给同一个类的另一个实例(然后删除原始对象)?

C ++使用另一个类的函数

构造函数中的 C++ 语法错误 - 参数是对来自另一个类的对象的引用