我正在为单元测试存根类“myClass”及其 50 多个成员“myMemberFunction*”。
不想每次都写类名,所以尝试了以下方法:
namespace myNamespace{
myClass::myClass()
{
// constructor code
}
namespace myClass {
void myMemberFunction1()
{
// function 1 code
}
void myMemberFunction2()
{
// function 2 code
}
}
}
编译时出现错误“myClass 已在当前作用域中声明”。但是,以下工作:
namespace myNamespace{
myClass::myClass()
{
// constructor code
}
void myClass::myMemberFunction1()
{
// function 1 code
}
}
有没有办法不用在每个函数存根之前写“myClass::”? 我是如何误解命名空间的?
答案 0 :(得分:0)
类和命名空间是两个不同的东西。您不能使用 namespace myClass
并定义其中的所有成员。每次在类外定义它时都必须使用 <return type> myClass::<function>
。
您可以使用 Visual Assist、Intellisense 等工具为您创建函数定义。但除此之外,您不能使用名称空间之类的类。另一种选择是在类体内定义函数。每次编辑类时这可能会出现问题,因为所有使用类头文件的源文件都将被重新编译。
参考文献:MSDN documentation