版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、声明 - declaration
声明:告诉编译器某个东西(变量或函数)的名称和类型,但略去细节。
通俗的讲就是:告诉编译器我这个变量或函数是有的,我要用,只是现在不定义,你先不要给我报错,定义我后面补上。
比如:
extern int x; //对象object声明
std::size_t numDigits(int number); //function声明
class widget; //class声明
template<typename T>
class GraphNode; //模板template声明
二、定义 - definition
1.变量的定义:变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。
声明和定义两者联系与区别:
(1)定义也是声明(定义是一种特殊的声明),因为当定义变量时我们也向程序表明了它的类型和名字;
(2)但声明不是定义,可以通过使用extern关键字声明变量而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern;
(3)程序中变量可以声明多次,但只能定义一次。
(4)变量声明:(1)不分配空间 变量定义:(1)分配空间 (2)注意:定义是一种特殊的声明.
总结来说:
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。
三、初始化 - initialization
初始化是给对象赋予初值的过程
(1)变量初始化:在定义的同时赋值;(注意,定义之后,再去赋值不叫初始化)
(2)对于类的对象:初始化由构造函数执行。所谓的default构造函数是一个可被调用而不带任何实际参数者,这样的构造函数要不没有参数,要不就是每个参数都有缺省值。
四、赋值
大家都懂的。