已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
23天前关闭。
Improve this question
我是C新手,我正在尝试初始化一个名为Room
的对象,GameObject
类的构造函数将pointers
作为初始化字段的参数。但我一直收到错误消息,称“没有匹配的构造函数用于初始化GameObject
。谁能告诉我我犯了什么错?
对不起,如果这个问题的格式不好,我不习惯用多个头文件和源文件来问C问题。但请也纠正我这一点。
游戏对象
GameObject::GameObject(string* _name, string* _description, char* _keyWord):
name(_name), description(_description), keyWord(_keyWord){
}
房间
//error!, "No matching constructor for initialization..."
gameObjects[0] = new GameObject("knife", "a knife", 'k');
gameObjects[1] = new GameObject("sword", "a sword", 's');
};
1条答案
按热度按时间pftdvrlh1#
好吧,你在GameObject构造器中:
你是通过指针接受两个字符串和一个字符串,所以你可能想通过引用接受它们,如下所示:
这样很好。
例如,以这个程序为例:
(1):这可以正常运作,因为它会找到相符的建构函式:
标准::字符串-〉标准::字符串
(2):然而,这并不能很好地工作,因为它是这样的转换:
标准::字符串-〉标准::字符串 *
总之,只要移除构造函数上的指针,如果你愿意,你可以像这样传递
&
或const &