c++ 命名空间前向声明与定义 给出完整的例子
时间: 2023-11-24 21:05:15 浏览: 140
实例讲解C++ 命名空间
假设你有一个命名空间 `MyNamespace`,并且在其中定义了一个类 `MyClass`,则可以使用如下方式进行命名空间前向声明和类前向声明:
```cpp
// 在 header.h 中
namespace MyNamespace {
class MyClass;
}
// 在 source.cpp 中
#include "header.h"
namespace MyNamespace {
class MyClass {
public:
void func() {
// do something
}
};
}
```
这里在头文件 `header.h` 中进行了命名空间前向声明和类前向声明,在源文件 `source.cpp` 中进行了完整的类定义。
需要注意的是,在使用前向声明的时候,需要确保声明的顺序正确,不能出现循环依赖的情况。同时,在头文件中也需要进行正确的命名空间声明和前向声明,以确保在包含头文件的时候,命名空间和类定义都已经被正确地解析。
在使用这个类的时候,可以像这样调用:
```cpp
#include "header.h"
int main() {
MyNamespace::MyClass obj;
obj.func();
return 0;
}
```
阅读全文