【发布时间】:2018-08-12 20:36:15
【问题描述】:
如果一个类定义在单独的命名空间中,它的结构必须是什么样的?
哪些部分属于头文件,哪些属于cpp文件?
我怎样才能使这个类只能通过这个特定的命名空间访问?
【问题讨论】:
-
类的结构,以及类的访问方式,不会因为它在命名空间中而改变。类声明(在命名空间声明中)属于头文件。类实现属于 cpp 文件。命名空间不会改变这一点。
标签: c++ class header-files
如果一个类定义在单独的命名空间中,它的结构必须是什么样的?
哪些部分属于头文件,哪些属于cpp文件?
我怎样才能使这个类只能通过这个特定的命名空间访问?
【问题讨论】:
标签: c++ class header-files
类名.h
#include <iostream>
namespace N {
class classname {
public:
void classmethod();
}
}
类名.cpp
#include "classname.h"
namespace N {
void classname::classmethod() {
std::cout << "classmethod" << std::endl;
}
}
main.cpp
#include "classname.h"
int main() {
N::classname a;
classname b; // Error!
a.classmethod();
return 0;
}
【讨论】: