已声明存根 class
Stubbing class has already been declared
我正在对 class“myClass”及其 50 多个成员“myMemberFunction*”进行单元测试。
我不想每次都写class名字,所以我尝试了以下方法:
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::”?
我怎么会误解名称空间?
类 和命名空间是两个不同的东西。您不能使用 namespace myClass
并在其中定义所有成员。每次在 class.
之外定义它时都必须使用 <return type> myClass::<function>
您可以使用 Visual Assist, Intellisense 等工具为您创建函数定义。但除此之外,你不能像命名空间一样使用 classes。另一种选择是在 class 主体本身内部定义函数。这可能会在您每次编辑 class 时出现问题,因为所有使用您的 class 头文件的源文件都将被重新编译。
参考文献:MSDN documentation
我正在对 class“myClass”及其 50 多个成员“myMemberFunction*”进行单元测试。
我不想每次都写class名字,所以我尝试了以下方法:
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::”? 我怎么会误解名称空间?
类 和命名空间是两个不同的东西。您不能使用 namespace myClass
并在其中定义所有成员。每次在 class.
<return type> myClass::<function>
您可以使用 Visual Assist, Intellisense 等工具为您创建函数定义。但除此之外,你不能像命名空间一样使用 classes。另一种选择是在 class 主体本身内部定义函数。这可能会在您每次编辑 class 时出现问题,因为所有使用您的 class 头文件的源文件都将被重新编译。
参考文献:MSDN documentation