类的对象不命名类型

时间:2016-12-18 03:01:35

标签: c++ object types compilation header

我知道这个问题已被多次询问,但其他线程都没有完全适用,我真的无法找到我的错误。所以我有2个头文件,depositor.h和name.h

#include <iostream>
#include <string>
#include "name.h"
using namespace std;
class name;
class depositor
{
private:
    string ssnum;
    string fname;
    string lname;
    name info;
public:
    depositor(string f, string l, string s) : info(f, l)
    {
        ssnum = s;
        fname = f;
        lname = l;
    }
    string getssnum();
    info.getfname()
    info.getlname();
    void printffname();
    void printllname();
    void printssnum();
};




#include <string>
#include <iostream>
using namespace std;
class name
{
private:
string fname;
string lname;
public:
name(string f, string l)
    {
        fname = f;
        lname = l;
    }
    string getfname();
    string getlname();
    void printfname();
    void printlname();
};

两者都在单独的文件中,我在存放器中声明了类名(info)的对象,但是当我运行代码时,代码块告诉我&#34;&#39; info&#39;没有命名类型。&#34;通过其他线程,人们已经建议这是一个编译错误,并建议使用前向声明;除非我不正确地使用它并没有帮助。对于我的生活,我无法看清代码的错误;我以完全相同的方式声明了其他对象并且它们工作正常,但由于某种原因,这个实例是不合法的。有人可以提出建议吗?

更新:在这个问题上阅读更多信息,似乎经常在两个类在同一个文件中,或者有递归.h使用时发生。我有一个类似于前面的问题,但是我修复了它并且在这个例子中似乎没有可能,因为name.h不包含我自己的任何标题。我仍然想知道这里有什么问题,是否可能出现代码块问题?

0 个答案:

没有答案