头文件中的C++类定义

C++ class definitions inside header files

本文关键字:定义 C++ 文件      更新时间:2023-10-16

我目前正在学习C++。对于我目前正在做的作业,我必须在一个头文件中定义多个类。我不确定我做得对不对。这是我尝试做的事情的样本。

//classOne.h
class classOne{
    public:
        classOne();
        ~classOne();
        class classInsideClass{
            public:
                classInsideClass
                void hello();
                void print();
        };
}

(我跳过了这个示例中的一些代码,比如classOne的构造函数)

//classOne.cpp
classOne::classInsideClass::classInsideClass(){}
classOne::classInsideClass::hello(){
    cout << ""Hello <<endl;
}
//main.cpp
classOne callingClass;
callingClass.classInsideClass.hello;

我在classOne的头文件中定义了一个类。我已经在classOne的cpp中为这个classInsideClass创建了函数。这是正确的说法吗,classInsideClass属于classOne,还是我不被允许这样做?

我在main.cpp中是否正确调用了classInsideClass的函数?当我尝试运行这个时,我会得到以下错误;

错误:"classOne::classInsideClass "的使用无效

如果我不尝试在main.cpp中调用classInsideClass的函数,它会很好地执行。

提前谢谢。

classInsideClassclassOne内部的类型,而不是对象。如果要调用classInsideClass::hello(),则需要classInsideClass:的实际实例

classOne::classInsideClass callingClass;
callingClass.hello();
//classOne.h
...
        class classInsideClass{
            public:
                classInsideClass();
                void hello();
        };

在这里,您错过了构造函数定义末尾的parentehsis。

void classOne::classInsideClass::hello(){
    cout << "Hello" <<endl;
}

这里缺少函数返回类型,引号应该在字符串周围。

祝你好运!

尝试:

//main.cpp
classOne::classInsideClass internalClassObject;
internalClassObject.hello();