摘要:
1) RAII全称是“Resource Acquisition is Initialization”,直译过来是“资源获取即初始化”,也就是说在构 造函数中申请分配资源,在析构函数中释放资源。 因为C++的语言机制保证了,当一个对象创建的时候,自动调用构造函数,当对象超出作用域的时候会 自动调用析构 阅读全文
2021年7月18日
摘要:
1) 内存泄漏 内存泄漏是指由于疏忽或错误造成了程序未能释放掉不再使用的内存的情况。内存泄漏并非指内存在物 理上消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制; 2) 后果 只发生一次小的内存泄漏可能不被注意,但泄漏大量内存的程序将会出现各种证照:性能下降到内存逐渐用完,导致 阅读全文
2021年7月17日
摘要:
一:继承 继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重 写父类的方法来方便地实现对父类的扩展。 继承的缺点有以下几点: ①:父类的内部细节对子类是可见的。 ②:子类从父类继承的方法在编译时就确定下来了,所以无法在运 阅读全文
摘要:
1) 向上类型转换 将派生类指针或引用转换为基类的指针或引用被称为向上类型转换,向上类型转换会自动进行,而且向 上类型转换是安全的。 2) 向下类型转换 将基类指针或引用转换为派生类指针或引用被称为向下类型转换,向下类型转换不会自动进行,因为一 个基类对应几个派生类,所以向下类型转换时不知道对应哪个 阅读全文
2021年7月13日
摘要:
抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层。 (1)抽象类的定义:称带有纯虚函数的类为抽象类。 (2)抽象类的作用:抽象类的主要作用是将有关的操作作为结果接口组织在一个继承层次结构中,由它来为派生类提供一 个公共的根,派生类将具体实现在其基类中作为接口的操作。 阅读全文
摘要:
1) 带有默认构造函数的类成员对象,如果一个类没有任何构造函数,但它含有一个成员对象,而后者有 默认构造函数,那么编译器就为该类合成出一个默认构造函数。 不过这个合成操作只有在构造函数真正被需要的时候才会发生; 如果一个类A含有多个成员类对象的话,那么类A的每一个构造函数必须调用每一个成员对象的默认 阅读全文
2021年7月12日
摘要:
派生类中包含并且可以使用它从基类继承而来的成员,为了使用这些成员,派生类必须知道他们是什么。 阅读全文
摘要:
1) 前者是把new、delete运算符重载为private属性。后者是把构造、析构函数设为protected属性,再用子类来动态创建 2) 建立类的对象有两种方式: ① 静态建立,静态建立一个类对象,就是由编译器为对象在栈空间中分配内存; ② 动态建立,A *p = new A();动态建立一个类 阅读全文
摘要:
1) 指针参数传递本质上是值传递,它所传递的是一个地址值。 值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,会在栈中开辟内存空间以存放由主 调函数传递进来的实参值,从而形成了实参的一个副本(替身)。 值传递的特点是,被调函数对形式参数的任何操作都是作为局部变量进行的,不会影响主调函数的实 阅读全文