如果我有这样的嵌套类:
class MyClass
{
class NestedClass
{
public:
// nested class members AND definitions here
};
// main class members here
};
目前MyClass
的定义在CPP
文件中,而NestedClass
的定义在头文件中,即I不能在 CPP
文件中声明函数/构造函数。
所以我的问题是,如何在cpp文件中定义NestedClass
的功能?如果我不能,原因是什么(如果是这种情况,我对为什么会发生这种情况有一个模糊的概念,但我想要一个很好的解释)?结构呢?
最佳答案
你可以。如果你的内部类有这样的方法:
class MyClass {
class NestedClass
{
public:
void someMethod();
};
// main class members here
};
...然后你可以像这样在 .cpp 文件中定义它:
void MyClass::NestedClass::someMethod() {
// blah
}
结构与 C++ 中的类几乎相同——只是默认为“公共(public)”以供访问。他们在所有其他方面都像类一样对待。
您可以(如注释中所述)只需声明一个内部类,例如:
class MyClass {
class NestedClass;
// blah
};
..然后在实现文件中定义:
class MyClass::NestedClass {
// etc.
};
关于c++ - 源文件中的嵌套类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4482005/