小问题

wubooy 2007-04-17 07:18:45

class A //是声明还是定义?TC++PL说是定义,声明和定义有什么区别?
{
int b; //声明还是定义?
}

A a; //是声明还是定义?给a分配空间了吗?
...全文
167 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2007-04-17
  • 打赏
  • 举报
回复
声明和定义当然有严格的定义。看C++ Primer吧。
关注:声明、定义、实现、实例化4个名词。
wubooy 2007-04-17
  • 打赏
  • 举报
回复
也就是说声明和定义没有精确的严格的定义喽?
mochen5460 2007-04-17
  • 打赏
  • 举报
回复
看了C++ Primer就不会有这个问题了
zwlzwlzwl 2007-04-17
  • 打赏
  • 举报
回复
声明:一种把一个名称引入或者重新引入到某个C++作用域的构造。

定义:它也是一种声明,但该声明必须给出被声明实体的细节。
对于变量而言,这里的细节是指:为被声明实体保留存储空间。
对于class类型和函数定义而言,指的是包含有一队花括号内容的声明。
对于外部变量而言,指的是前面没有关键字extern或者在声明时就进行初始化。


变量的声明有两种情况:

一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。

另一种是不需要建立存储空间的 例如:extern int a 其中 变量a是在别的文件中定义的.前者是"定义性声明 (defining declaration)"或者称为"定义(definition)",而后者是"引用性声明 (referncing declaration)" 从广义的角度来讲 声明中包含着定义,但是并非所有的声明都是定义,例如:int a 它既是声明,同时又是定义。然而对于 extern a 来讲 它只是声明不是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为"定义",而把不需要建立存储空间称之为"声明"。很明显我们在这里指的生命是范围比较窄的,也就是说非定义性质的声明.

65,213

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧