是定义还是声明?讨论一下(C++)

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:18:42
以 class A{ int a; };为例
你说他是声明吗?如果是声明,则可以在一个源文件中多次声明,可是它却不是!
你说他是定义吗?如果是定义,就不能在多个源文件中多次定义,可是它却可以! (例如,在main.cpp中有class A{ int a; };在test.cpp中还可以有class A{ int a; };甚至还可以是class A{ int b; };!!!)

不信大家就试试!

大家探讨一下,是不是C++有什么底层机制?
大家要往深处想想!

这只是作用域的问题 没什么底层不底层的

我认为是定义
之所以可以在多个源文件中多次定义是由于C++的名字空间机制,像楼主说的那样,在其它的源文件中即使是同一个类名,但类的定义是不可见的

“如果是定义,就不能在多个源文件中多次定义”。---错误。