一,类的定义和声明.
"最简单地说来,类就是定义了一个新的类型和一个新的作用域"
①定义
class 类名{
public:
private:
}; //分号不能省,因为在分号与右括号之间可以定义多个类对象.
②构造函数
创建类类型对象时,编译器会自动使用一个构造体函数来初始化该对象.
构造函数是一个与类同名的成员函数,用于给每个数据成员设置初始值.
类名(): data_member1(初始值), data_member2(初始值) {}
③成员函数
成员函数在类内部定义默认为inline,在外部定义的函数必须标明在类的作用域中.
类型 类名::成员函数(参) {}
定义重载成员函数
同名成员函数只要含有不同类别或不同数量的形参便可实现成员函数重载.
char get() { return char; }
char get(char a) { return a; }
二,类的作用域
①使用类的成员.
类的对象或指针分别使用 . 或 -> 来访问成员.
类对象使用 . 类对象名.成员名
类指针使用 -> 类指针名->成员名
②作用域与成员定义必须指明成员出现在哪个类中:
double Sale_item::avg_price() const {}
这样定义,标明了该函数在Sale_item作用域中,在函数的定义体中出现的类的成员可直接引用.
④函数返回类型不一定在类作用域中
class Screen{
public:
typedef std::string::size_type index; //在类定义内部出现对index定义
index get_cursor() ;
};
inline Screen::index Screen::get_cursor() {} //定义get_cursor()函数
此处为类定义体的外部,Index是在类定义体内部出现的,所以一定要限定index这个类型是在Screen这个类的作用域中.
三,类作用域中的名字查找(略)