c++中定义和声明的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37962600/article/details/78334077

一.基本理解

1.定义和声明的简单说明

a.声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。就好比跟你介绍一个人的时候,声明就是只告诉你这个人叫什么,但是缺不给你说这个人到底怎么样,他有哪些优点,缺点,喜好问题是什么的。

b.定义就不一样了,定义直接告诉你了所有的东西,这个变量是什么,这个函数是什么功能,这个类里面包含了什么东西。很具体的说明。


2.对于变量来说

a.定义:可以为变量分配存储空间,并且可以给变量一个初始值

b.声明:告诉编译器这个变量的名字和类型(extern int a;(在没有赋值的情况下,变量前加上关键字extern一定为声明))

3.对于函数来说

a.定义:就是这个函数具体的实现

b.声明:告诉编译器在这个程序中会有这么一个函数

简单来说,如果函数带有{},则其为定义;否则,就为声明。


二.深入探讨

1.在一个程序中只能对变量定义一次,因为我们不能让编译器一直为同一个变量,函数分配不同的存储空间;而可以对变量进行很多次的声明。

 2.在任何多文件中使用的变量都需要有与定义分离的声明。在这种情况下,一文件含有变量的定义,则使用该变量的其他文件中就要含有该变量的声明,而不是定义。

3.在头文件中不能放变量的定义,一般存放变量的声明。因为头文件要被其他文件包含,如果放到头文件当中就不能避免变量被多次定义。(const,inline)

三.类的声明

类声明的一般形式:

class类名

{

     private: 私有数据成员; 私有的成员函数;

    protected: 被保护的数据成员; 被保护的成员函数;

    public: 公共的数据成员; 公共的成员函数;

};

其中:class是声明类的关键字,类名是要表明的类的名字,后面的花括号表示出类的声明范围;最后分号表示类声明结束。
类的成员:①私有成员:被该类的成员函数访问
                    ②公有成员可被程序中的其它函数访问,是类的对外接口。
                   ③保护成员在类中等同于私有成员,在继承中等同于公有成员。
           注意:C++规定,在缺省情况下,类中的成员是私有的。
        类的作用域:指在类的声明中的一对花括号所形成的作用域。
说明: 
(1)数据成员可以是任何数据类型,但不能用自动(auto)寄存器(vegister)或外部(extern)  进行说明。
(2)不能在类的声明中给数据成员赋初值。只有在类对象定义后才能给数据成员赋值。

(3)成员函数,又称方法。其定义通常采取两种方式:外部定义,内部定义(①隐式定义:直接将函数定义在类内部; ②显式定义:在类定义体外定义内置函数,在函数定义前冠以"inline")。

参考博客:http://lizhiyuan.bokee.com/907634.html




阅读更多
换一批

没有更多推荐了,返回首页