C++ [C+;+;]构造函数不';无法检测组件

C++ [C+;+;]构造函数不';无法检测组件,c++,function,constructor,components,C++,Function,Constructor,Components,我是OOP的初学者,我对构造函数的定义有问题。 headfile.h: #ifndef RACHUNEK_H_INCLUDED #define RACHUNEK_H_INCLUDED #include <string> class Rachunek { std::string surname; std::string nr_account; double balance; public: Rachunek(); Rachunek(std::string

我是OOP的初学者,我对构造函数的定义有问题。 headfile.h:

#ifndef RACHUNEK_H_INCLUDED
#define RACHUNEK_H_INCLUDED

#include <string>
class Rachunek
{
   std::string surname;
   std::string nr_account;
   double balance;
public:
   Rachunek();
   Rachunek(std::string & name,std::string & nr,double s = 0.0);
   ~Rachunek(){};
   void show();
   void give(const double m);
   void get(const double m);

};

#endif // RACHUNEK_H_INCLUDED
#如果包括RACHUNEK#u H#u
#定义包含的轴孔
#包括
拉胡尼克级
{
std::字符串姓氏;
std::字符串nr_帐户;
双平衡;
公众:
Rachunek();
Rachunek(标准:字符串和名称,标准:字符串和编号,双s=0.0);
~Rachunek(){};
void show();
无效给定值(常数加倍m);
void-get(const-double-m);
};
#endif//RACHUNEK_H_包括在内
文件.cpp:

#include <iostream>
#include <string>
#include "rachunek.h"
using namespace std;

Rachunek::Rachunek() //default
{
  surname = "not specified";
  nr_account = "0000-0000-0000-0000";
  balance = 0.0;
}
Rachunek::Rachunek(string & name, string & nr, double s = 0.0) //mysecond
{
  surname = name;
  nr_account = nr;
  balance = s;
}
#包括
#包括
#包括“rachunek.h”
使用名称空间std;
Rachunek::Rachunek()//默认值
{
姓氏=“未指定”;
nr_account=“0000-0000-0000-0000”;
余额=0.0;
}
Rachunek::Rachunek(string&name,string&nr,双s=0.0)//mysecond
{
姓氏=姓名;
nr_账户=nr;
平衡=s;
}
问题是构造函数的定义。我不知道怎么了

问题是构造函数的定义。我不知道怎么了

函数定义中不允许有默认值。仅在声明中允许使用默认值。使用:

Rachunek::Rachunek(string & name, string & nr, double s) :
   surname(name),
   nr_account(nr),
   balance(s)
{
}
我建议更改其他构造函数的实现,以使用初始值设定项列表语法初始化成员变量

Rachunek::Rachunek() :
  surname("not specified"),
  nr_account("0000-0000-0000-0000"),
  balance(0.0)
{
}
如果您能够使用C++11编译器,则可以通过使用委托构造函数进一步简化该编译器

Rachunek::Rachunek() : Rachunek("not specified", "0000-0000-0000-0000", 0.0)
{
}
问题是构造函数的定义。我不知道怎么了

函数定义中不允许有默认值。仅在声明中允许使用默认值。使用:

Rachunek::Rachunek(string & name, string & nr, double s) :
   surname(name),
   nr_account(nr),
   balance(s)
{
}
我建议更改其他构造函数的实现,以使用初始值设定项列表语法初始化成员变量

Rachunek::Rachunek() :
  surname("not specified"),
  nr_account("0000-0000-0000-0000"),
  balance(0.0)
{
}
如果您能够使用C++11编译器,则可以通过使用委托构造函数进一步简化该编译器

Rachunek::Rachunek() : Rachunek("not specified", "0000-0000-0000-0000", 0.0)
{
}

你得到的错误是什么?好的。错误在定义中的赋值中:我一直在寻找这个问题。除了编译错误,你永远不会在银行账户余额中使用浮点。这使得审计人员对舍入误差发疯。相反,使用美分并将输出固定为2位小数。此外,您永远无法创建初始余额为非零的帐户。资金必须始终从其他帐户转移。(是的,我在一家银行工作:-)好的好的:D这是本子上的练习,我不关注计划的细节,我也不在银行工作:)谢谢你的经济课;)你得到的错误是什么?好的。错误在定义中的赋值中:我一直在寻找这个问题。除了编译错误,你永远不会在银行账户余额中使用浮点。这使得审计人员对舍入误差发疯。相反,使用美分并将输出固定为2位小数。此外,您永远无法创建初始余额为非零的帐户。资金必须始终从其他帐户转移。(是的,我在一家银行工作:-)好的好的:D这是本子上的练习,我不关注计划的细节,我也不在银行工作:)谢谢你的经济课;)