1.类
类是具有相同属性和行为的一类事物的抽象。
class 类名{
public:
成员函数和数据成员的说明或实现
private:
成员函数和数据成员的说明或实现
}
//实现部分
函数类型 类名::成员函数名 (参数表){
函数体
}
class Date{ public: void setDate(int y, int m){ year=y; month=m; } int isLeapYear(); private: int year; int month; } int Date::isLeapYear(){ return (year%4==0 && year%100!=0) || year%400==0; }
2.对象
C++语言在创建对象时,系统会自动调用相应的构造函数对对象进行初始化,当一个对象生命周期终止时,系统又会自动调用析构函数来释放这个对象。
3.构造函数 析构函数
构造函数是用来初始化对象的,析构函数则是用来释放所创建的对象的。
4.静态数据成员
静态数据成员的特点是它不属于某对象,而是属于整个类。静态数据成员一定要在类外对其进行初始化。
class A {private: static int a;}
int A::a=10;
5.静态成员函数
需在成员函数前加static说明符。类名::静态成员函数名(参数表) 或 对象名.静态成员函数名(参数表) 都可以用来调用函数。
6.常量成员
常量成员是通过构造函数的成员初始化列表来实现的.
class A {
public:
A(int i, int j):a(i){b=j;}
void print() const {cout<<a<<b<<endl;} //常成员函数
private: static int a; int b;
}
不能在常成员函数改变非常数据成员的值;
常对象只能调用常成员函数,常对象的数据成员都是常数据成员。
7.友元函数
友元函数并不是这个类的成员函数,但是具有这个类的成员函数所具有的访问该类所有成员的功能。友元函数中必须使用对象来引用数据成员。
当一个类B是另外一个类A的友元类时,该类B中的所有成员函数都是这个类A的成员函数。
8.类型转换
使用一个参数的构造函数可将某种数据类型转换为该构造函数所属类的类型。
在类中定义类型转换函数可以实现由类类型转换为指定的数据类型的操作。