繁体   English   中英

C ++错误:标识符“类名”未定义

[英]C++ Error: identifier 'class name' is undefined

我刚刚开始在C ++中使用类。 作为第一个面向对象的项目,我想编写一个用于Pen and Paper游戏的角色创建程序。

我创建了包括继承的类结构。

这是一个示例类:

#include "Characters.cpp"
#include "Fighter.cpp"
#include "Dwarf.cpp"

class FighterDwarf : public Characters, public Fighter, public Dwarf {

public:
    string test = "Hello, I am a fighter dwarf!";

    void testPrint() {
        cout << test << endl;
    }

    FighterDwarf() {

    }
};

这是主要的:

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

int _tmain(int argc, _TCHAR* argv[])
{
    FighterDwarf fighterDwarf;
    fighterDwarf.testPrint();
    return 0;
}

如果不太明显,它们位于两个不同的文件/项目中。 我认为这并不重要,但它们也位于两个不同的文件夹中。

问题是我收到错误消息“错误:标识符“ FighterDwarf”未定义。

这很可能是初学者的错误。 我猜想我必须以某种方式在主文件中声明“ FighterDwarf”,然后才能创建该类的实例。 如果是这种情况,我不知道该如何使用类。

顺便说一句,我知道有很多人不喜欢多重继承,但是由于这个功能,我选择使用C ++而不是Java。

解决:如果我想在一个文件中完成所有操作,则需要在标题中执行。 我会的,因为有些类还有更多我现在不想重写的代码。 此外,我发现使用一个文件比使用两个文件更容易,至少在起初我要记住的是重要的事情。 但是我将在下一个程序中将这些类分为两个类。 顺便说一句,为什么分类很重要? 上一堂课不是容易吗?

它与类无关。 您的main.cpp文件只需要#include头文件 ,即可声明和/或定义FighterDwarf类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM