C++错误C2061:语法错误:标识符

C++ Error C2061: syntax error : identifier

本文关键字:错误 语法 标识符 C2061 C++      更新时间:2023-10-16

当我试图编译此代码时,我会收到以下错误:

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)
{
}

您的类Test_Lohnab函数int Gehaltsrechner需要一个类型为stammdaten的对象,编译器还不知道该对象,因为它是在以后定义的。您可以使用远期申报通知他。只需在您的includes 后面添加以下行

class stammdaten;