C++ c++;构造函数不工作

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()

这是我的MakeCount.cpp:

#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;
}