【问题标题】:What is this error: "no appropriate default constructor available"?这个错误是什么:“没有合适的默认构造函数可用”?
【发布时间】:2025-12-20 16:00:12
【问题描述】:

我得到:

main.cpp(13): 错误 C2512: 'myPlayer' : 没有合适的默认值 构造函数可用

这是它所指的代码:

    myPlayer player;

这里是构造函数:

myPlayer (int myHealth, int myDamage, int myMoney, int myWeaponID, int myClass) : health(myHealth), damage(myDamage), money(myMoney),
    weapon_id(myWeaponID), p_class(myClass) {}

另外,如何在 Visual Studio 11 上显示每一行的数字?

【问题讨论】:

  • 你有那个类的默认构造函数(一个没有参数的)吗?如果没有,则需要声明一个。

标签: c++ class constructor


【解决方案1】:

您的构造函数被声明为采用 5 个参数,所有类型均为 int。您没有提供任何参数。

您的选择是编写不需要参数的构造函数,或者在构造对象时提供参数,例如:myPlayer player(1, 2, 3, 4, 5);

【讨论】:

  • 选项3:给所有参数默认值。选项 4 (C++11):对所有成员使用类内成员初始值设定项。现在我已经提供了一些东西,因为我的老师非常具体,所以您的第一段应该以参数结尾,因为它们是您赋予函数的内容。
  • @chris:您的选项 3 实际上是选项 1——提供默认值只是在创建对象时消除参数要求的一种方法。选项 4 也几乎相同——另一种机制可以消除构造对象时传递参数的要求。
  • 相同的想法,是的,但不同的方法。根据具体情况,一个人可能比其他人更适合。
最近更新 更多