定义
将现实中的事物归纳总结,并用变量和方法去描述形成的模型。是模块化代码的一种,有利于代码重用
eg.
class Person
{
public: //公有,外部对象可以直接访问和修改
explicit Person(); //构造函数,一般在构造函数中会将对象的成员变量进行初始化
~Person(); //析构函数,一般会将类申请的资源回收
char* getName(){ return szName;}; //在函数内实现的函数,默认为内联函数
inline void setName(); //正常声明的内联函数
protect: //保护,外部对象不可以直接访问和修改
private: //私有,外部对象不可以直接访问和修改
int m_id; //成员变量
char szName[];
int a;
int b;
int c;
}
void Person::Person() :
a(1),b(2),c(a+b) //类的初始化列表
{
}
void Person::~Person()
{
}
重点
1.explicit关键词可以防止类对象被隐式转换
2.如果不希望类的使用者对类进行初始化,那么将构造函数设置为私有
3.类的初始化列表的效率比在构造函数中赋值高,但是如果初始化的参数之间有因果关系,那么要注意初始化列表参数的顺序,编译器是根据成员变量声明的顺序来初始化的
4.一个类如果不存在构造、析构、copy构造和copy assignment操作符函数,编译器会默认生成,其中copy构造和copy assignment操作符只会单纯的将成员变量拷贝到新的类,如果该实现不能满足需求,请自己实现
5.this指针:一个指向类对象的指针,在类中可以用this指针去访问类的成员变量和方法。编译器一般会将this指针存放在类对象的开头位置。
6.如果说是空类,编译器会默认赋值1字节内存给类对象
7.类的继承和多态