C++中对象的类型称为类(class),类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,对象是具体的,占用存储空间。
类的声明格式:
class 类名
{
public:
公用的数据和成员函数;
private:
私有的数据和成员函数;
};
private和public称为成员访问限定符,被声明为私有的成员,只能被本类中的成员函数引用,类外不能调用,友元类除外。
被声明为公用的成员,既可被本类中的成员函数调用,也可以被类外的其他函数调用。
protected声明的成员称为受保护的成员。它不能被类外访问,但可以被派生类的成员函数访问.
::是作用域限定符,用于声明函数属于哪个类的。::还可用于避免多重继承的二义性。
如果没有Student::的限定,display()指的是全局作用域中的display()函数。
若在类中声明成员函数为:
inline void display();
inline void Student::display(){}//
在类外定义display函数为内置函数
则
表示类的成员函数为内置函数。如果类中定义的成员函数不包括循环等控制结构,则C++默认它们为内置函数。
如果再类外定义,则不默认为内置函数,必须加inline作显式声明。
不同对象的数据成员是一般是不同的,因此每个对象所占用的存储空间只是该对象数据部分所占用的存储空间,不包括成员函数所占用的存储空间。成员函数是存储在对象空间之外的,不论它是在类内定义还是在类外定义,用inline都不能改变。
对象成员的引用
访问对象中的成员有三种方法:通过对象名和成员运算符访问对象中的成员;通过指向对象的指针访问对象中的成员;
通过对象的引用变量访问对象中的成员。
类的封装性和信息隐蔽
:一般把所有的数据指定为私有,把需要被外界调用的成员函数指定为公用的,外界可以通过公用的函数实现对私有数据的操作。共用成员函数就是用户使用类的公用接口,或称类的对外接口。
类外可以通过调用共用成员函数引用甚至修改私有成员。
一般把类的声明放在指定头文件内。