头文件中的C++类定义

use*_*253 1 c++ header class

我目前正在开始使用C++.对于我目前正在做的功课,我必须在一个头文件中定义一些类.我不确定我是否正确行事.这是我正在尝试做的样本.

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

//main.cpp
classOne callingClass;
callingClass.classInsideClass.hello;
Run Code Online (Sandbox Code Playgroud)

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

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

错误:无效使用'class classOne :: classInsideClass

如果我不尝试在main.cpp中调用classInsideClass的函数,那么它符合要求.

提前致谢.

ild*_*arn 6

classInsideClass是一种类型的内部classOne,而不是一个对象.如果你想打电话classInsideClass::hello(),你需要一个实际的例子classInsideClass:

classOne::classInsideClass callingClass;
callingClass.hello();
Run Code Online (Sandbox Code Playgroud)

  • ...除非`hello`声明为`static`,这意味着它不适用于特定对象,因此没有`this`指针,在这种情况下它将被称为:`classOne :: classInsideClass :: hello( );` (3认同)