C++ c++;构造函数不工作
这是我的MakeCount.cpp:C++ c++;构造函数不工作,c++,class,constructor,C++,Class,Constructor,这是我的MakeCount.cpp: #include "account.h" #include <string> using namespace std; int makeAccount::getAccountNumber() { return accountNumber; } double makeAccount::getAccountSaldo() { return accountSaldo; } string makeAccount::getName()
#include "account.h"
#include <string>
using namespace std;
int makeAccount::getAccountNumber()
{
return accountNumber;
}
double makeAccount::getAccountSaldo()
{
return accountSaldo;
}
string makeAccount::getName()
{
return name;
}
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
naam = name;
id = accountNumber;
saldo = accountSaldo;
}
它确实可以工作,所以我认为我的构造函数或makeAccount.cpp中的任何地方都有错误,我有以下代码:
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
naam = name;
id = accountNumber;
saldo = accountSaldo;
}
提前谢谢。您的作业被颠倒了 你会想要这个:
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
name = naam;
accountNumber = id;
accountSaldo = saldo;
}
通常,您希望使用初始化列表,您的构造函数应该如下所示:
private:
int accountNumber = 1234;
double accountSaldo = 1;
std::string name = "test";
};
makeAccount::makeAccount(std::string naam, int id, double saldo) :
accountNumber(id),
accountSaldo(saldo),
name(naam)
{}
改变这个
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
naam = name;
id = accountNumber;
saldo = accountSaldo;
}
与:
现在应该可以工作了除了其他人在回答中所说的之外,这里显示的成员函数都应该是
const
,因为它们不会修改任何内容。字符串通常应该作为std::string const&
传递,至少在C++11之前是这样。最后,makeAccount
是一个奇怪的类名。C++没有官方命名约定,但我从未见过有人这样写类名。最常见的约定是“MakeCount”或“make_account”。
makeAccount::makeAccount(std::string naam, int id, double saldo) :
accountNumber(id),
accountSaldo(saldo),
name(naam)
{}
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
naam = name;
id = accountNumber;
saldo = accountSaldo;
}
makeAccount::makeAccount(std::string naam, int id, double saldo)
{
name = naam;
accountNumber = id;
accountSaldo = saldo;
}