2 singshell singshell 于 2016.04.28 10:08 提问

命名空间中定义的类是否需要在同一文件中给出实现方法?

如题,比如在test.h文件中有如下namespace

namespace ns {
...;
class student *ptr;

...
}

class student 的实现方法是否要在test.h文件中给出?为什么?

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.04.28 10:23
已采纳

命名空间只是为了区分重命名等,你的实现等可以在其他cpp中。

beifengche
beifengche   2016.04.28 10:19

不需要,命名空间是为了防止变量重名。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c++命名空间三种实现文件的区别
在命名空间的情况下,也是将声明放在.h文件中,实现放在.cpp文件中。实现时一般有三种途径: 1、用完全限定名,如:ostream& cplusplus_primer::operator 2、在 namespace cplusplus_primer{}内部实现,此时直接使用已声明的名字 3、用using namespace cplusplus_primer;引入,然后直接使用 注意:方法1
在同一个文件中定义多个命名空间
(PHP 5 >= 5.3.0, PHP 7) 也可以在同一个文件中定义多个命名空间。在同一个文件中定义多个命名空间有两种语法形式。 Example #1 定义多个命名空间,简单组合语法 <?php namespace MyProject; const CONNECT_OK = 1; class Connection { /* ... */ } function conne
C#中,有两个不同的CS文件,但这两个文件具有相同的命名空间(namespace)。一个CS文件要用另一个CS文件中的类的话,下面有一个处理方式。
处理这种情况的方法:         前提假设:有两个文件 A.cs、B.cs在一个项目中,在A.cs中有个类的名字叫做 public class tommyly{public int i;};。在这样的设定下,若B.cs 要用A.cs 中的tommyly这个类中的变量i的话。下面为操作步骤。         1、在A.cs 中 ,在tommyly 这个类下面实例化一个对象,例如:public
类的静态数据成员在 类内只能声明,定义和初始化必须在类外
类的静态数据成员在 类内只能声明,定义和初始化必须在类外 可以这样 class a { int aa; static int aaa; //静态数据成员声明 }; int a::aaa=10; //静态数据成员的定义和初始化
Thinkphp5——公共命名空间的使用方法
?php namespace bengjing;//命名空间 header(&quot;content-type:text/html;charset=utf-8&quot;); class Animal{ public $obj ='dog'; static $name ='球球'; } function getmsg(){ ech...
简单易懂的命名空间及use的使用
分享一篇写的很清楚的关于命名空间的简单应用!        命名空间的使用及use引入。看了很多网上的说法,也看了官方文档,意思大概明白,也很好理解,命名空间还好说,给这个空间起个名字嘛,但是use具体操作起来就不行 了,怎么也搞不通。后来看一个yii学习视频才恍然明白。   比方说建三个文件。   第一个文件 A.php,里边有两个类,命名空间是 a\b\c; nam
C++将模板的声明和定义放置在同一个头文件里
1. 一个类: 头文件用于保存类的声明;定义文件保存类的实现。 2. 分离编译模式: 允许在一个编译单元(.cpp文件)中定义函数、类型、类对象等,然后在另一个编译单元中引用它们。编译器处理完所有的编译单元后,链接器接下来会处理所有指向extern符号的引用(有时为缺省),从而生成单一可执行文件。 3. 模板类型: 模板类型不是一种实类型,它必须等到类型绑定后才能确定最终
JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
持久化对象的状态  Hibernate持久化对象存在三种状态: 瞬时态 transient:(临时态)  不存在持久化标识OID,尚未与Hibernate  Session关联对象,被认为是瞬时状态,失去引用将被JVM回收。特点:无持久化标识OID,未与Session关联。 持久态 persistent:存在持久化标识OID,与当前Session有关联,并且相关联的Session没有关闭,并
[C++]多个文件中定义同一个namespace
存在两种情况:  1)名字空间名称相同,成员名字不同,那么他们会自动合并为一个名字空间,可以理解为追加  2)名字空间名称相同,成员名称相同。那么程序会在调试过程的link时报错。因为连接器会检测到重复定义的变量。
python中类的命名空间和面向对象的诸多问题
python中的作用域 以前一直对C++不行,为什么呢 ? 原来最终的原因是没有全局观,就是没有去看作用域的问题,理解命名空间好重要啊。 python中,或者说面向对象编程中,命名空间的概念很重要,也就是各个东西的作用域很重要。python运行坏境有内置的作用域,模块有模块的作用域,函数有函数的作用域,类有类的作用域,类的实例也就是对象有对象的作用域。 #  pyth