调试C+时出现错误代码0x80070002+;在VS19中 我对C++编程非常新。 我在C++学习OOP,我试着自己编写一个程序 class Account { private: string name; double balance; public: Account(); Account(string name_val); Account(double bal_val); Account(string name_val, double bal_val); };
这就是课堂调试C+时出现错误代码0x80070002+;在VS19中 我对C++编程非常新。 我在C++学习OOP,我试着自己编写一个程序 class Account { private: string name; double balance; public: Account(); Account(string name_val); Account(double bal_val); Account(string name_val, double bal_val); };,c++,debugging,visual-studio-2019,C++,Debugging,Visual Studio 2019,这就是课堂 Account::Account(): name { "None" }, balance{ 0.0 }{} Account::Account(string name_val) : name{ name_val }, balance{ 0.0 }{} Account::Account(double bal_val) : name{ "None" }, balance{ 0.0 }{} Account::Account(string name_val, double bal_val) :
Account::Account(): name { "None" }, balance{ 0.0 }{}
Account::Account(string name_val) : name{ name_val }, balance{ 0.0 }{}
Account::Account(double bal_val) : name{ "None" }, balance{ 0.0 }{}
Account::Account(string name_val, double bal_val) : name{ name_val }, balance{ bal_val }{}
class Player
{
private:
string name;
int health;
int xp;
public:
//Overloaded Constructors
Player();
Player(string name_val);
Player(string name_val, int health_val, int xp_val);
};
这些是我所做的声明
Account empty;
Account frank{ "Frank" };
Account rich_boi{ 1000000.0 };
Account sad_boi{ "Sad boi", -10.0 };
这些是我主要制作的物品
编辑:在此之前,我还做了一个程序(我从我的课程中得到的),它运行得非常好
这就是课堂
Account::Account(): name { "None" }, balance{ 0.0 }{}
Account::Account(string name_val) : name{ name_val }, balance{ 0.0 }{}
Account::Account(double bal_val) : name{ "None" }, balance{ 0.0 }{}
Account::Account(string name_val, double bal_val) : name{ name_val }, balance{ bal_val }{}
class Player
{
private:
string name;
int health;
int xp;
public:
//Overloaded Constructors
Player();
Player(string name_val);
Player(string name_val, int health_val, int xp_val);
};
这些是建设者
Player::Player() : name{ "None" }, health{ 0 }, xp{ 0 }{}
Player::Player(string name_val) : name{ name_val }, health{ 0 }, xp{ 0 }{}
Player::Player(string name_val, int health_val, int xp_val) : name{ name_val }, health{ health_val }, xp{ xp_val }{}
这些是主要的目标
Player empty;
Player frank{ "Frank" };
Player villain{ "Villain" , 100 , 55 };
这应该是类构造函数的正确定义
Account empty;
Account frank("Frank" );
Account rich_boi( 1000000.0 );
Account sad_boi( "Sad boi", -10.0 );
这就是在程序的main()
中声明对象的方式。你的语法不正确
<> C++中初始化列表的正确语法是:
Constructorname(datatype value1, datatype value2):
datamember(value1),
datamember(value2) {
.
. //Anything if at all you want to include in your constructor function
.
}
我正在添加在我的计算机上成功执行的完整代码。复制并执行以查看代码是否在您的端成功执行
#include<iostream>
using namespace std;
class Account
{
private:
string name;
double balance;
public:
Account();
Account(string name_val);
Account(double bal_val);
Account(string name_val, double bal_val);
};
Account::Account(): name ( "None" ), balance( 0.0 ){}
Account::Account(string name_val) : name( name_val ), balance(0.0 ){}
Account::Account(double bal_val) : name("None" ), balance(bal_val ){}
Account::Account(string name_val, double bal_val) : name( name_val ), balance( bal_val ){}
int main(){
Account empty;
Account frank("Frank" );
Account rich_boi( 1000000.0 );
Account sad_boi( "Sad boi", -10.0 );
}
#包括
使用名称空间std;
类别帐户
{
私人:
字符串名;
双平衡;
公众:
账户();
帐户(字符串名称);
账户(双倍余额);
账户(字符串名称、双倍余额);
};
Account::Account():名称(“无”),余额(0.0){}
Account::Account(字符串名称){u val):名称(名称){u val),余额(0.0){}
账户:账户(双倍余额):名称(“无”),余额(余额){}
Account::Account(字符串名称,双倍余额):名称(名称),余额(余额){}
int main(){
账户为空;
账户弗兰克(“弗兰克”);
账户丰富(1000000.0);
账户sad_boi(“sad boi”,-10.0);
}
除了第三个构造函数中的一个可能错误(Account::Account(double bal_val):name{“None”},balance{0.0}
可能应该是Account::Account(double bal_val):name{“None”},balance{bal val}
)。。。您遇到的问题是什么,导致该问题的代码在哪里?您定义类构造函数的方式不正确,我猜请提供一个也有2个错误(都是错误代码C2371)它们都说:重新定义;不同的基本类型显示系统无法找到指定的文件。这里有错误吗?您没有执行任何api调用,也没有检查任何错误。我尝试了此操作,但不起作用。在尝试debug@KAI您对构造函数定义和对象声明都做了更改吗?@KAI我正在运行与我相同的程序,使用VScode,并成功编译和执行了它。请确保您没有犯任何语法错误或其他错误。我确实更改了构造函数定义和对象声明编辑:我将查看整个程序的语法错误编译器告诉我有2个错误(错误代码:C2371)@KAI-编译器应该告诉您确切的行(和列)问题发生的地方。它仍然显示错误。顺便说一句,错误不是在编译时,而是在调试时。确定我将打开一个新项目并将此代码放入,然后它可能会出现work@KAI好的,试试看,让我看看know@KAI至少,你的问题解决了。谜团依然存在,最初是什么导致了错误,两个声明的错误代码都是C2371(请参阅下面帖子的注释)