构造函数调用其他构造函数
Constructor invokes Other Constructor
我是CPP的新手,所以如果这是一个愚蠢的问题,我深表歉意。我创建了一个课程,并希望它将其包括在我所做的另一堂课中。当我为上类创建构造函数时,它会创建一个子类变量,但是它似乎正在尝试调用子类的默认构造函数,而我没有一个。有没有办法设置变量而不调用构造函数?
game.hpp
class Game {
private:
char players[2];
char curPlayer;
TTTBoard<TTTBoard<char>> board; <-------
int curBoard[2];
int nextBoard[2];
bool finished;
public:
Game();
const bool isFinished() const;
const char getCurPlayer() const;
const char next();
void setCurBoard(int x, int y);
void printWholeBoard();
void printCurBoard();
void setPos(int x, int y);
};
我认为这是正在发生的事情,因为当我尝试编译时,我会收到以下错误
game.cpp:3:16: error: no matching function for call to ‘TTTBoard<TTTBoard<char> >::TTTBoard()’ Game::Game(void) {
任何帮助都非常感谢。谢谢
是的,TTTBoard<TTTBoard<char>>
的默认构造函数将在此处调用。如果没有一个,则需要使用成员初始化列表来指定适当的构造函数,以在实现中初始化成员board
的构造函数Game
的构造函数。
成员初始化列表是可以指定这些对象的非默认初始化的地方。对于不能默认限制的成员,例如参考成员和constemified类型,必须指定成员初始化器。
,例如
class Game {
private:
TTTBoard<TTTBoard<char>> board;
public:
Game() : board(some_arguments) {}
// ~~~~~~~~~~~~~~~~~~~~~~~
};
相关文章:
- 如何在其他类中使用参数化构造函数制作类的对象?
- 通过向构造函数其他对象引用页面来创建对象
- 为什么构造函数的虚拟函数调用有时有效,但其他调用却无效
- 继承构造函数和其他变量的解决方法
- 其他结构中的结构构造函数
- C++编译错误是由于使用 std::move 时运动构造函数与其他非运动构造函数之间的冲突
- 在其他构造函数的调用中调用构造函数时C++编译错误
- C++ 在构造函数中传递数组而不在其他地方定义它们
- 为什么删除的复制构造函数不允许使用其他具有多态类型的构造函数?
- 可以移动构造函数以除班级本身以外的其他参数
- 使用构造函数的可变参数中的其他模板化类执行模板化类的初始化
- 构造函数期望缺少对其他构造函数的调用/候选人期望 1 个参数,提供 0?
- 作为其他类成员的类:创建一个接受所有数据的构造函数
- 在构造函数以外的任何其他位置访问相机时,我的相机指针返回 null
- 构造函数找不到合适的定义,以及 100 个其他错误?
- 委托构造函数和默认参数,具体取决于其他参数
- 构造函数调用其他构造函数
- C 实例化对象,在没有指针的情况下,其他类构造函数中没有默认构造函数
- 当存在其他构造函数时,如何强制创建默认序列构造函数
- 来自没有默认构造函数的超级类的子类,而无需调用任何其他构造函数