边边角角c++

宏定义函数

省略参数类型 ()里是返回值

#define EXTERN16BYTE(x)   ((x + 15) / 16 * 16)
#define isLeap(n) (n%400==0||(n%4==0&&n%100!=0)?1:0)

public\private\protected

1.private成员只能被本类成员(类内)和友元访问,不能被派生类访问;

2.protected成员可以被派生类访问。
public可被类外访问。

继承

在这里插入图片描述

派生类继承方式

public继承:父类成员在子类中保持原有访问级别

private继承:父类成员在子类中变为private成员

protected继承:父类中public成员会变成protected

                          父类中protected成员仍然为protected

                          父类中private成员仍然为private

类型兼容性原则

派生类可以被当作基类使用 子类就是特殊的父类
子类对象可以当作父类对象使用

子类对象可以直接赋值给父类对象

子类对象可以直接初始化父类对象

父类指针可以直接指向子类对象

父类引用可以直接引用子类对象

继承中的构造析构调用原则

构造时 父类->子类 析构时相反

组合

组合:类中有类,强调has a
先构造父类,再构造成员变量、最后构造自己

派生类中有同名成员/函数

1.直接调用访问的是子类成员/函数

2.子类可以通过添加作用域来访问父类中的同名成员成员/函数
s1.father::fun(110);

派生类中访问static

基类定义的静态成员,将被所有派生类共享
类名 :: 成员

虚继承

如果在多条继承路径上有一个公共的基类,那么在继承路径的某处汇合点,这个公共基类就会在派生类的对象中产生多个基类子对象
要使这个公共基类在派生类中只产生一个子对象,必须对这个基类
声明为虚继承,使这个基类成为虚基类。
class B1:public virtual A;

虚函数&&纯虚函数&&抽象类

在这里插入图片描述

虚函数

C++中的虚函数的作用主要是实现了多态的机制。第一层是在基类中用virtual关键字声明的,第二层是要在多个派生类中被重新定义。
虚函数允许函数调用与函数体之间的联系在运行时才建立
构造函数不可以是虚函数
而析构函数可以是虚函数

纯虚函数

虚函数=0 在基类中无定义

抽象类

拥有纯虚函数的类叫作抽象类,无法实例化。

delete 和 delete[]的区别

  • 对于基本数据类型来说,相同
  • 对于自定义的数据类型来说,delete 仅回收该指针指向的内存
    delete[]回收指向数组的所有内存
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值