一.基本理解
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