C++中的声明和定义

来源:互联网 发布:郑州启凡网络 编辑:程序博客网 时间:2024/06/16 12:51

1、变量的声明和定义
变量的声明有两种情况:
(1)需要建立存储空间
例如:int a。在声明时就建立了存储空间。也称为定义性声明,即我们所说的“定义”。
(2)不需要建立存储空间,只是告诉编译器某变量已经在别处定义过了。
例如:extern int a。其中变量a已在别处了。这种即是我们所说的“声明”。

总结:
int a;//定义性声明,分配存储空间,初值不确定。
int b = 0;//定义性声明,分配存储空间,并赋初值。
extern int c;//引用性声明,不分配存储空间,只告诉编译器变量已经在别处定义“

2、函数的声明和定义
有函数体的即为定义,不带函数体为声明
例:

double sqrt(double x);//声明;doublue sqrt(double x){return x*x;}//有函数体即定义。

3、类的定义和声明
1.类的声明就是告诉编译器有这么一个类,它的名字是XXX,它具有哪些成员函数,哪些成员变量。(声明类,不仅没有为成员分配空间,也没有为成员函数分配空间。)

2.通过对象调用成员函数,在链接的时候才知道入口地址。

3.类的static成员变量,在类的声明出并没有定义。必须在类定义的地方,定义类的static成员变量否则会处相连接错误。代码如下:

class Myclass{private:    int a , b , c;    static int sum;  //声明静态数据成员public:    Myclass(int a , int b , int c);    void GetSum();};int Myclass::sum = 0;   //定义并初始化静态数据成员//以上属于在面向对象编程的应用//面向过程编程的应用#include<iostream>  using namespace std;  static void fn();   //声明静态函数  int main(void)  {      fn();      return 0;  }  void fn()     //定义静态函数  {      int n = 10;      cout<<n<<endl;  }  

4、定义与声明的区别
(1)是否需要分配存储空间。
(2)在一个作用域中可以重复声明,但不能重复定义。

原创粉丝点击