随笔分类 - c++类
摘要:1. 关于虚函数 问:虚函数是否必须有定义? 答:该类(包括该类的派生类)有实例对象时,虚函数必须有定义。 实际应用中:定义基类对象时,基类虚函数必须有定义;定义派生类对象时,继承来的虚函数要么被隐藏,要么必须有定义;但是,无论基类还是派生类中的虚析构函数,必须有定义,因为派生类中析构函数会调用基类
阅读全文
摘要:知识点: 1. 深拷贝 类中含有指针成员时,需要显式定义构造函数实现深拷贝。 2. 类中的动态内存管理 保证类的析构函数被调用。 一切都在代码中: 新 type 与内置类型保持一致性!!!
阅读全文
摘要:18.3 多重继承与虚继承 规则基本与“单继承”是一样的,在次记录几点需要关注的点! 派生类构造函数初始化所有基类 构造一个派生类的对象将同时初始化它的所有基类子对象。多重继承的派生类的构造函数初始值也只能初始化它的直接基类: 基类的构造顺序与派生列表中基类的出现顺序保持一致,而与派生类构造函数初始
阅读全文
摘要:在C语言中,static关键字至少有下列几个作用: 1. 函数体内static变量的作用范围为该函数体,不同于auto变量(普通变量),该变量的内存只被分配一次,因此其值在下次调用时扔维持上次的值。 2. 在模块内的static全局变量可以被模块内所有函数访问,但不能被模块外其他函数访问。 3. 在
阅读全文
摘要:专题--类初始化列表 1.类成员为const类型 原因:const对象一旦创建后其值就不能改变,所以const对象必须初始化。 2.类成员为引用类型 原因:const对象和引用类型都只能初始化而不能赋值。构造函数体内只能实现赋值,初始化列表是初始化这两种类型成员的唯一机会。 初始化和赋值是不同的概念
阅读全文
摘要:第14章 重载运算与类型转换 重载函数调用运算符:
阅读全文
摘要:第15章 面向对象程序设计 一、OOP概述 1.面向对象程序设计的核心思想:数据抽象(封装)、继承和动态绑定(多态性)。 通过数据抽象,我们可以将类的接口与实现分离;使用继承,可以定义相似的类型并对其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象。 封装
阅读全文
摘要:类的静态成员(static) 有时候,类需要它的一些成员与类本身直接相关,而不是与类的各个对象保持关联。 声明静态成员 可以使public/private的,类型可以使常量、引用、指针、类类型等。 对象中不包含任何与静态数据成员有关的数据。因此,每个Account对象将包含两个数据成员:owner和
阅读全文
摘要:类的作用域 定义在类外部的成员 注意:成员函数定义在类外部时,必须指明它是哪个类的成员(主要注意返回类型为类成员的成员函数)。 名字查找(使用名字前,要有声明)1.名字查找过程: 首先,在名字所在的块中寻找其声明语句,只考虑在名字的使用之前出现的声明; 继续查找外层作用域; 如果最终没找到,程序报错
阅读全文
摘要:类类型 类的声明: class A; 类声明之后定义之前是一个不完全类型,也就是说,此时A是一个类类型,但是不清楚它到底包含哪些成员。 不完全类型只能在非常有限的情景下使用:可以定义指向这种类型的指针和或引用,也可以声明(但不是定义)以不完全类型作为参数或者返回类型的函数。 类的成员: 因为只有当类
阅读全文
摘要:专题:类的构造函数与拷贝控制 一个类必然包含的函数有:默认构造函数、拷贝构造函数、拷贝赋值函数和析构函数。 类(class)与结构体(struct)的位移区别在于:默认情况下,类的派生方式和访问权限是private的,struct的派生方式和访问权限是public的。 构造函数 构造函数的任务是初始
阅读全文

浙公网安备 33010602011771号