当我尝试编译此代码时,我得到了这些错误:
Error 1 error C2061: syntax error : identifier 'stammdaten'
Error 2 error C2660: 'Test_Lohnab::Gehaltsrechner' : function does not take 1 arguments
Error 3 error C2511: 'int Test_Lohnab::Gehaltsrechner(stammdaten &)' : overloaded member function not found in 'Test_Lohnab'
如果有人能解释我的错误,那将是一个很大的帮助。
这是我的代码:
//Test_Lohnab.h
#pragma once
#include <iostream>
#include <string>
class Test_Lohnab
{
public:
Test_Lohnab();
~Test_Lohnab();
int Gehaltsrechner(stammdaten &st);//, abrechnung &ab);
}
class stammdaten
{
public:
std::string name;
std::string strasse;
std::string ort;
….
public:
stammdaten();
~stammdaten();
stammdaten(std::string n, std::string s, std::string o, int st, int fa, int k, int a, double z, double kver, double pk, int mi, int pv, int os, int ps, int ki, double geb,
double jf, double jh, int G_c, int G_a_c, int r_c, int A_L_c, double U_1, double U_2, double bb_g);
}
//Test_Lohnab.cpp
#include "Test_Lohnab.h"
#include <iostream>
Test_Lohnab::Test_Lohnab()
{
}
Test_Lohnab::~Test_Lohnab()
{
}
stammdaten::stammdaten()
{
}
stammdaten::stammdaten(std::string n, std::string s, std::string o, int st, int fa, int k, int a, double z, double kver, double pk, int mi, int pv, int os, int ps, int ki, double geb,
double jf, double jh, int G_c, int G_a_c, int r_c, int A_L_c, double U_1, double U_2, double bb_g)
: name(n), strasse(s), ort(o), stkl(st), f(fa), krv(k), abv(a), zkf(z), kv(kver), pkpv(pk), mitag(mi), pvz(pv), ost(os), pvs(ps), kist(ki), gebjahr(geb), jfreib(jf), jhinzu(jh),
Gleitzone_check(G_c), Gleitzone_alt_check(G_a_c), rente_check(r_c), AN_Lst_check(A_L_c), U1(U_1), U2(U_2), bbg(bb_g)
{
}
int main()
{
system("PAUSE");
stammdaten Personstamm1{ "Klaus Müller", "Parkstrasse 12", "78578 Monopoly", 1, 1000, 1, 1, 0, 15.5, 0.0, 0, 1, 0, 0, 9, 1982, 0, 0, 0, 0, 0, 0, 1.7, 0.38, 0 };
/**/
Test_Lohnab Ablauf;
Ablauf.Gehaltsrechner(Personstamm1); //, Abrechnung1);
system("PAUSE");
/**/
}
int Test_Lohnab::Gehaltsrechner(stammdaten &Test1)//, abrechnung &Abrech1)
{
}
答案 0 :(得分:2)
您的类Test_Lohnab
函数int Gehaltsrechner
需要一个编译器尚未知道的stammdaten
类型的对象,因为它是在之后定义的。您可以使用前向声明来告知他。只需在includes
class stammdaten;