类和对象基础知识

来源:互联网 发布:ppt柱形图数据用 表示 编辑:程序博客网 时间:2024/05/29 18:31
1.类和对象的基础知识
定义:类就可以看做是对相似事物的抽象
访问限定符:public,private,protect
封装性:
    1)良好的封装能够减少耦合。
    2)类内部的结构可以自由修改。
    3)可以对成员进行更精确的控制。
    4)隐藏实现细节
对象大小计算:只计算非静态成员变量(公有私有都算), 不算函数,和static变量,有内存对齐,空间换时间


2.四个默认成员函数,运算符重载


1)构造函数:初始化对象
  无返回值
  与类同名
  实例化时自动调用
  可重载
  只要定义了构造函数,系统不会默认生成
  无参构造函数,全缺省构造函数,都叫缺省构造函数
  缺省构造函数只能有一个,可以半缺省
  可在类外定义


2)拷贝构造函数:特殊的构造函数
  拷贝构造是构造函数的重载
  自己写拷贝构造时候参数要传引用,否则无穷递归


3)析构函数:清理工作
  对象生命周期结束时自动调用
  类名前面加~
  不删除对象,而是做一些清理工作,关闭文件,释放动态开辟等


4)赋值运算符的重载
  两个对象都存在时才会有赋值运算符重载
  d1和d2两个日期类都存在,d1=d2是赋值运算符重载
  Date d2 = d1;这是拷贝构造,因为d2不是已经存在的


运算符重载
  不能重载的5个运算符:  .*   ::   sz   ?:   .


3.隐含的this指针
  非静态成员函数第一个参数都是this指针
  public:  void Display(Date *this)
  cout<<this->_year;
  main:   Date d1; d1.Display(&d1);


4.运算符重载背后做的事情
  两个日期类 d1 == d2
  编译器会处理成 d1.operator==(&d1,d2);