C++ 模版和类为什么可以在每个文件内都定义同名的?

模版的连接性是外部的吗?貌似只能用定义在自己文件内的啊。。能extern吗?还有就是类为什么不用extern,可以随便用别的文件里的,但是又可以在自己文件里定义同名的。。... 模版的连接性是外部的吗?貌似只能用定义在自己文件内的啊。。能extern吗?
还有就是类为什么不用extern,可以随便用别的文件里的,但是又可以在自己文件里定义同名的。。如果是全局的就应该只能定义一次才对啊。。
展开
 我来答
iguoping
2014-12-26 · TA获得超过3638个赞
知道小有建树答主
回答量:412
采纳率:57%
帮助的人:211万
展开全部
你还是没弄明白类,类,结构体,他只是一个模型,对象才是他的实例,程序在运行时,才给对象分配内存空间,类中只有静态成员,才属于类本身,类中的成员函数,和成员变量,都不占内存的,只有对象才占内存,所以用extern没有意义,本身类就不会实例化里面的成员变量,你想想,如果类里的成员变量是定义的话,定义是要赋初值的,那类的成员变量,岂不是独一份,那对象A和对象B如果是同一个类的对象,不是改A成员的值 要影响到B?

模板和普通函数完全一样,只是他的类型可以在执行时指定。extern仅仅是做申明变量时使用,一般也只对全局变量用一下,还有就是指定使用C编译器时用。没有人会在类里或结构体中用extern
儒雅的点点丶
推荐于2016-04-07 · 超过21用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:32.9万
展开全部
  1. 类和模板只是声明而已,并没有实例化,就和函数声明一样。

  2. 你可以自己实例化两个相同的模板,肯定会报错的。

追问
类里定义的函数没有实例化?那为什么多个文件中同一个类中的函数只能在一个文件里定义?
追答
实例化就是定义啦,当然不能多个定义。
一个文件里面只能定义一个类,如果出现了同名的类,编译器会提示你重定义的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式