C++笔记

  1. pc = new 类名(); 在堆里面创建一个对象, 返回的是指针. 因此 pc 的申明要指定为指针类型 类名 * pc;

  2. 深拷贝与浅拷贝: 拷贝一个对象时, 默认的拷贝构造函数会按成员拷贝. 如果此时对象中含有一个指针指向堆区的一个对象, 默认拷贝出来的新对象将会含有一个指针, 指向堆区的同一个对象. 这种拷贝称为浅拷贝. 浅拷贝有一些问题, 例如在析构时会造成二次析构. 因此需要重新定义拷贝构造函数, 为拷贝出来的对象包含的指针拷贝新的堆对象. 这称为深拷贝.

  3. 在公有派生中, 基类的对象无法访问protected 成员, 但是继承基类的子类可以访问protected 成员

  4. public protected private 既可以做类成员的访问限定符, 也可以指定派生类型. 最常用的是公有派生.

  5. 虚拟继承: 举个例子, student 从person 继承, teacher 从person 继承, 助教从student+teacher 两个类继承, 这样助教这个类将包含重复的person 类的成员. 使用virtual 继承, 同名的成员将只有一份拷贝, 直观上就是根据名字做了去重. class student : virtual public person

  6. 派生类的对象可以赋值给基类的对象, 反过来不行, 因为子类对象的成员无法赋值. 同理, 子类对象的指针可以赋值给基类对象指针. void 指针特殊处理.

  7. 多态性: 编译时多态, 例如: 函数重载, 运算符重载. 运行时多态, 通过继承与虚函数来实现. 虚函数只能在类内部定义, 子类继承过来之后, 重新定义这个函数, 不需加virtual 关键字, 但是函数名和参数必须完全一致. 设置基类的函数为virtual 之后, 子类的地址可以赋值给基类的指针, 调用的将会是基类的函数, 而不是子类的函数. 将一个类中的函数尽量设置为虚函数是有好处的. 虚函数是在子类对象的指针赋值给基类对象指针时起作用的. 如果不定义为virtual 函数, 将调用子类的函数. 属于重载.

  8. 纯虚函数: 基类中不实现的成员函数. 依赖于子类实现. 含有纯虚函数的基类不能用来定义对象. 这是一个抽象类. 定义方法: virtual 函数名(参数列表) = 0; 派生类必须重新定义函数体. 当子类的对象指针赋值给基类的对象时, 调用纯虚函数将会调用子类定义的函数. 通过这种办法, 可以实现多个子类定义多个函数. 不同对象将调用自己定义的函数.

  9. 函数指针:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值