声明和定义

在C++中,变量的声明和定义、函数的声明和定义、类的声明和定义。

1,变量的声明和定义的理解:

例如:int  a;//这个首先是声明。然后它也是定义。声明的时候建立的存储空间,所以也定义了。

           int  a=1;//这个是声明+定义。

           extern double pi=3.1416;  //定义。首次声明、定义,在函数外部,表明是要被别的程序引用的。

           extern int a;//这个是外部的声明。说明a变量是在别的文件中定义的。声明的时候没有建立存储空间。

从上边的例子可以看出:声明declaration)用于向程序表明变量的类型和名字。定义也是声明:当定义变量的时候我们声明了它的类型和名字。可以通过使用extern声明变量名而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern变量的定义(definition)用于为变量分配存储空间,还可以为变量指定初始值。在程序中,变量有且仅有一个定义。把建立空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。变量在使用前就要被定义或者声明。

2,函数的声明和定义:

这个简单,有函数体的是定义;没有函数体的是声明。函数定义在main之前,那么在main里可以不声明,直接使用;函数定义在main之后,需要在main里先声明函数才可以使用。

函数声明:返回类型 函数名(参数类型1 参数名1,·····,参数类型n 参数名n);

如:int fun(int a, int b); void display(); float fn1(float x);

函数定义:返回类型 函数名(参数类型1 参数名1,·····,参数类型n 参数名n)

{  

函数体······

}

3,类的声明与定义:

如果只是写 class A;//这样就是对A 的声明,而没有对他定义。
在这个时候对 A 做sizeof(A) 编译器会提示 error C2027: use of undefined type 'A'
但是如果你这么写
class A
{

};//这个时候,你再写 sizeof(A),就不会错了, 结果会是1。定义一个类就是定义一种自己创建的数据类型。
你说的在进入main函数之前是否已经为类A分配了内存?如果类A,声明了变量,比如这样
class A
{
     int a;
};
那么在main 函数之前,是会对这个类分配内存空间的。

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值