错误:'('令牌?之前的预期构造函数,析构函数或类型转换?

时间:2016-03-04 01:41:27

标签: c++

当我编译它时,我在Name.cpp中的名字功能之前得到了错误标题。我以前从未见过这个错误。令人困惑的是,在Name.cpp中的三个函数之前已经有一个构造函数,因为这就是错误似乎在讨论的内容。

的main.cpp

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

int main()
{

}

Name.h

#ifndef NAME_H
#define NAME_H
#include <iostream>
#include <string>
using namespace std;

class Name
{
    public:
        Name();
        string getFirst(string newFirst);

        string getMiddle(string newMiddle);
        string getLast(string newLast);
        void setFirst();
        void setLast();
        void setMiddle();

    private:
    string First;
    string Middle;
    string Last;
};

#endif // NAME_H

Name.cpp

    #include "Name.h"
    #include <iostream>
    #include <string>
    using namespace std;
    Name::Name()
    {

    }

    Name::setFirst(newFirst){

        Name = newFirst;
        cout << "You entered: " << Name << endl;

    }

    Name::setMiddle(newMiddle){

        Middle = newMiddle;
        cout << "You entered: " << Middle << endl;

    }

     Name::setLast(newLast){

        Last = newLast;
        cout<< "You entered: " << Last << endl;

    }

1 个答案:

答案 0 :(得分:3)

您不能省略参数的类型名称。写一些。此外,必须匹配声明和定义中的函数原型。

您的Name.h应该是

#ifndef NAME_H
#define NAME_H
#include <iostream>
#include <string>
using namespace std;

class Name
{
    public:
        Name();
        string getFirst();

        string getMiddle();
        string getLast();
        void setFirst(string newFirst);
        void setLast(string newLast);
        void setMiddle(string newMiddle);

    private:
    string First;
    string Middle;
    string Last;
};

#endif // NAME_H

Name.cpp应为

#include "Name.h"
#include <iostream>
#include <string>
using namespace std;
Name::Name()
{

}

void Name::setFirst(string newFirst){

    Name = newFirst;
    cout << "You entered: " << Name << endl;

}

void Name::setMiddle(string newMiddle){

    Middle = newMiddle;
    cout << "You entered: " << Middle << endl;

}

void Name::setLast(string newLast){

    Last = newLast;
    cout<< "You entered: " << Last << endl;

}