- C和C++的区别
C | C++ |
结构化 | 抽象化 |
重点是数据结构和算法 | 重点挖掘核心特征 |
面向过程 | 面向对象 |
总结就是解决问题的核心思想和方法不一样。
- 在C++中,int也是一个类,实现了如加减乘除等方法。
- 在析构函数前加virtual关键字。
- 构造函数和析构函数定义成public,若使用类名加变量名()的方法创建对象,则它的生命周期为这个大括号。即在创建时自动调用构造函数,在退出大括号时,自动调用析构。
- 父类定义的private类型的变量和函数,除了自己可以使用,其他类都不能使用。
- 继承类型为protected则父类的所有属性作用域都变成protected。
- 使用命名空间时可在使用的内容前加 命令空间名:: 或直接使用using namespace 命名空间名
- 变量定义习惯:成员变量m_。整型n。如int m_nAttr
- 子类调用构造前,会自动调用父类的构造函数,析构函数后会自动调用父类的析构函数。
- 重载:只根据函数参数区分函数,只有返回值不同是不正 确的。
- 重写:重新实现父类的方法。
- 多态:重新实现父类的方法,父类的该方法必须是由virtual修饰的。使用的时候,创建一个子类对象指针,赋给父类对象,父类调用被重写的方法时,执行的是子类实现的方法。
- 纯虚函数不能实例化:如virtual intfunc() = 0 ;
- C++有专门的类型转化函数,不需要强制转换类型
- try catch:异常处理,出错不会使程序崩溃,会抛出异常和错误原因。
- UML(描述类之间的关系的图表)的几种关系:
关系 | 说明 |
依赖(弱) | 人和笔的关系,人类的某个成员函数的输入参数为笔 |
关联(较弱) | 人和头发的关系,两个类的生命周期无关 |
组合 | 人和头的关系,两个类生命周期相关 |
继承 |