1.定义一个类的时候,相当于用class关键字定义了一个新类型,所以定义一个类其实是一个语句,最后要用分号结束
2.说明一个类的时候并不分配任何内存,只有在用这个类实例化一个具体的对象的时候,才为这个对象分配内存空间,大小为这个类中所以数据成员的大小的总和,成员函数的定义累的时候并不分配内存空间,只是在调用这个具体的函数的时候才会分配给这个函数一个运行的空间,这都是编译程序完成的。
3.c++区分大小写
4.缺省条件下,即在不明确说明的时候,类中的所有成员(包括成员函数,和数据成员)都是私有的。公有的成员(包括成员函数和数据成员)可以被这个类的对象直接访问,而私有成员(包括成员函数和数据成员)只能被这个类的成员函数访问。私有成员(包括成员函数和数据成员)即使是这个类的对象也不能访问。
5.作为一般程序设计的规定,应该把数据成员设置为私有,把成员函数设置为公有,通过成员函数访问数据成员。
6.凡是访问到数据成员的成员函数,都叫做成员访问函数,而普通成员函数是不涉及到成员数据的成员函数。
7.定义成员函数的格式: 返回值类型 所属的类名::成员函数名(形参表)
8.不带形参的构造函数是缺省构造函数,缺省构造函数不做任何操作,就如同说明了一个不带任何参数而且函数体为空的构造函数。如果程序中说明了一个构造函数,无论它是否带有参数,编译程序都不会提供缺省构造函数,此时,如果需要一个缺省构造函数,需要自己说明,同样如果没有说明一个析构函数,编译程序同样会提供一个函数体为空的不进行任何操作的缺省析构函数。
9.Cat Frisky(5); 这个语句的意思是:创建了一个Cat 类的对象Frisky,并把5作为实参传给Cat的构造函数
看下面的这个程序:
#include <iostream.h>
class Cat
{
public:
Cat(int itsAge);//构造函数
Cat();//缺省构造函数
private:
int age;
};
Cat::Cat(int itsAge)
{
age=itsAge;
}
Cat::Cat()
{
cout<<"缺省构造函数";
}
int main()
{
Cat Frisky_1(5);//这个调用了自己定义的构造函数,由于有参数5,所以如果这里不自己定义构造函数的话,程序只有一个由编译程序提供的缺省构造函数,而它是没有参数的,所以会编译不通过
Cat Frisky_2;//这里调用了缺省构造函数,由于自己定义了构造函数,所以原来会由编译程序提供的缺省构造函数不存在了,所以这里必须自己再定义一个缺省构造函数,否则这个语句编译不通过,因为这里要调用缺省构造函数
return 0;
}