在.cpp文件中定义C ++命名空间方法的正确方法 [英] Correct way to define C++ namespace methods in .cpp file
问题描述
可能是一个重复,但不是一个容易搜索...
Probably a duplicate, but not an easy one to search for...
给定一个标题:
namespace ns1
{
class MyClass
{
void method();
};
}
我看到 method c $ c>以多种方式在.cpp文件中定义:
I've see method()
defined in several ways in the .cpp file:
namespace ns1
{
void MyClass::method()
{
...
}
}
版本2:
Version 2:
using namespace ns1;
void MyClass::method()
{
...
}
版本3:
Version 3:
void ns1::MyClass::method()
{
...
}
方法做到吗?
推荐答案
版本2不清楚,不是容易理解,因为你不知道MyClass属于哪个命名空间,它只是不合逻辑(类函数不在同一命名空间???)
Version 2 is unclear and not easy to understand because you don't know which namespace MyClass belongs to and it's just illogical (class function not in the same namespace???)
版本1是正确的,它显示了在命名空间中,你正在定义函数。
Version 1 is right because it shows that in the namespace, you are defining the function.
版本3也是正确的,因为你使用 ::
scope解析操作符引用命名空间 ns1
中的 MyClass :: method()
。我喜欢第3版。请参见 http://msdn.microsoft.com/en-us/library/0z264w1e。 aspx 。这是最好的方法。
Version 3 is right also because you used the ::
scope resolution operator to refer to the MyClass::method ()
in the namespace ns1
. I prefer version 3. See http://msdn.microsoft.com/en-us/library/0z264w1e.aspx. This is the best way to do this.
这篇关于在.cpp文件中定义C ++命名空间方法的正确方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!