声明和定义的区别
声明是向计算机介绍名字,就是这个名字是什么意思;
而定义为这个名字分配存储空间。
无论涉及变量时还是函数或类时含义都一样。无论在那种情况下,编译器都在 定义 处分配空间。
对于变量,编译器确定这个变量占多少存储单元,并在内存中产生定义存放他们的空间,对于函数和类,编译器产生代码,并为之分配存储空间。
C++中类的定义一般分为类的声明部分和类的实现部分。
类的声明部分就是来说明该类中的成员,告诉使用者 干什么。
类的实现部分是用来定义成员函数,该函数用来对数据成员进行操作,告诉使用者怎么干。
类定义的一般形式如下:
class <类名>
{
public:
<成员函数或数据成员的说明>
protected:
<成员函数或数据成员的说明>
private:
<成员函数或数据成员的说明> //类的声明部分
};
<各成员函数的实现> //类的实现部分
类的声明由头类和类体组成。类头有关键字class开头,然后是类名。
类体定义类的成员 它支持以下两种类型的成员
(1) 数据成员:它们指定了该类对象的内部表示。
(2)成员函数:它们指定该类的操作。
类成员有以下三种不同的访问权限:
①public 公有权限 成员可以在类外访问
②private 私有权限 成员只能被该类的成员函数访问
③protected 保护权限 成员只能被该类的成员函数或派生类的函数访问。
数据成员通常是私有的,成员函数通常有一部分是公有的,一部分是私有的。公有的成员函数可以在类外被访问,也称之为类的接口。
我们可以为各个数据成员和成员函数指定适合的访问权限。
类定义常有下面的形式:
class Name
{
public:
// 类的公有接口
private:
//类的私有接口 私有的数据成员定义
};
私有的成员与公有的成员先后顺序无关紧要,不过公有接口函数放在前面更好,因为有时我们可能只想知道怎样使用一个类的对象,那只要知道类的公有接口就行了;
不必阅读private 关键字以下的部分。
类的成员函数通常在类外定义,一般形式如下:
返回类型 类名::函数名(参数表)
{
函数体
}
双冒号:: 是域运算符,它主要用于类的成员函数的定义,用它来标识某个成员函数是属于那个类的。
该运算符在此的使用格式如下:
<类名>::<函数名> <(形参表)>