在.cpp文件中定义C ++命名空间方法的正确方法 [英] Correct way to define C++ namespace methods in .cpp file

查看:640
本文介绍了在.cpp文件中定义C ++命名空间方法的正确方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能是一个重复,但不是一个容易搜索...

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆