类和对象--默认的成员函数

隐含的this指针

  1. 每个成员函数都有一个指针形参,称为this指针,this指针是隐式的(构造函数比较简单,没有这个隐含的this指针)
  2. 对象调用成员函数时,对象地址做实参传递给成员函数的第一个形参this指针
  3. this指针是成员函数隐含指针形参,是编译器自己处理的

类的默认成员函数:

  1. 构造函数
  2. 拷贝构造函数
  3. 析构函数
  4. 赋值操作符重载
  5. 取地址操作符重载
  6. const修饰的取地址操作符重载

构造函数:完成初始化

  1. 函数名与类名相同
  2. 无返回值
  3. 对象实例化时系统自动调用
  4. 构造函数可以重载(函数名相同,参数不同)
  5. 无参的构造函数和全缺省的构造函数都认为是缺省构造函数,并且缺省构造函数只有一个
缺省参数的构造函数:
class Date
{
 public:
 Date(int year=2000,int month=1,int day=1) {
   _year=year;
   _month=month;
   _day=day;
   }
 void Test() {
   Date d1;    //调用缺省构造函数
   }   
 }

拷贝构造函数:创建对象时使用同类对象来进行初始化,这是是用的就是拷贝构造函数,它是特殊的构造函数
创建对象,使用一个已有对象来初始化这个准备创建的对象

析构函数:对象的清理,动态开辟空间时需要写析构函数

  1. 析构函数在类名前加~
  2. 无参数,无返回值
  3. 一个类只有一个析构函数。未显示定义,系统自动生成缺省的析构函数
  4. 对象生命周期结束时,系统自动调用析构函数
  5. 并不是删除对象,而是做一些清理工作
my vector v1;
my vector v2;
先析构v2,再析构v1

笔试考点
5个C++不能重载的运算符 .* :: sizeof ?: .

类的成员变量初始化方式:

  1. 初始化列表
  2. 构造函数体内进行赋值

成员变量按声明顺序依次初始化,而非初始化列表出现的顺序

你可能感兴趣的:(C++)