将代码分离到头文件时的问题

问题描述

这个程序可以正常工作,但是当我将“Class StudentsName”分开并将其放在头文件中时,它无法正常工作。我通过右键单击标题文件夹并选择新项目和选择标题将头文件添加到我的项目中,但它无法正常工作。请帮助我!

主文件:

#include "iostream"
#include "string"
#include "Students.h"
using namespace std;

int main()
{
    string nameOfStudent;
    StudentsName myStudentsName(" The student name is: Jason");
    cout<<myStudentsName.getMyName()<<endl;

    cout<<"please enter the name of the student: "<<endl;
    getline(cin,nameOfStudent);
    myStudentsName.setMyName(nameOfStudent);
    cout<<endl;

    myStudentsName.displayMyName();

    system("pause");
    return 0;
}

头文件(Students.h):

class StudentsName
{
public:
    StudentsName (string  stdName)
    {
        setMyName(stdName);
    }
    void setMyName(string stdName)
    {
        myName=stdName;
    }
    string getMyName ()
    {
        return myName;
    }
    void displayMyName()
    {
        cout<<"The student name is: "<<getMyName()<<endl;
    }

private:
     string myName;
};

错误:

students.h(5): error C2061: syntax error : identifier 'string'
students.h(9): error C2061: syntax error : identifier 'string'
students.h(13): error C2146: syntax error : missing ';' before identifier 'getMyName'
students.h(13): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
students.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
students.h(16): warning C4183: 'getMyName': missing return type; assumed to be a member function returning 'int'
students.h(23): error C2146: syntax error : missing ';' before identifier 'myName'
students.h(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
students.h(7): error C2065: 'stdName' : undeclared identifier
students.h(11): error C2065: 'myName' : undeclared identifier
students.h(11): error C2065: 'stdName' : undeclared identifier
students.h(15): error C2065: 'myName' : undeclared identifier
students.h(19): error C2065: 'cout' : undeclared identifier
students.h(19): error C2065: 'endl' : undeclared identifier
studentname.cpp(11): error C2664: 'StudentsName::StudentsName(const StudentsName &)' : cannot convert parameter 1 from 'const char [84]' to 'const StudentsName &'
1>          Reason: cannot convert from 'const char [84]' to 'const StudentsName'
1>          No constructor could take the source type,or constructor overload resolution was ambiguous
studentname.cpp(16): error C2660: 'StudentsName::setMyName' : function does not take 1 arguments

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)