上一页 1 2 3 4 5 6 7 8 ··· 15 下一页
摘要: 虚函数: 一个成员函数, 该函数在基类的内部声明并且被派生类重新定义, 为了创建虚函数, 应在基类该函数声明的前面加上virtual关键字如果一个类的某个成员函数被说明为虚函数, 意味着该成员在派生类中可能存在不同的实现方式, 当继承包含虚函数的类时, 派生类将重新定义该虚函数以符合自身的需要. 动 阅读全文
posted @ 2020-09-01 15:50 DNoSay 阅读(1024) 评论(0) 推荐(0) 编辑
摘要: 继承描述的是类与类之间的层次关系, 而多态则描述的是这种继承关系以及类自生特定成员函数之间的关系来解决行为的再抽象问题多态性的两种表现形式:1 不同对象在收到相同信息时, 产生不同的动作, 主要通过虚函数来实现2 同一对象在收到相同信息时却产生不同的函数调用, 主要通过函数重载来实现 多态性就是同一 阅读全文
posted @ 2020-09-01 12:31 DNoSay 阅读(169) 评论(0) 推荐(0) 编辑
摘要: C++继承中的构造和析构C++派生类能继承大多数基类的成员, 但不包括构造函数(包括拷贝函数), 析构函数 C++继承中构造函数的调用顺序(单继承)1 调用基类的构造函数, 初始化基类成员, 如果基类也是派生类, 则递归调用基类的基类的构造函数2 调用自身的构造函数, 初始化成员 C++继承中的析构 阅读全文
posted @ 2020-09-01 00:06 DNoSay 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 虚基类:派生类A继承自多个基类B,C,..., 而B,C,...又继承自同一个基类D, 若在B,C,...基类定义继承关系时, 声明基类D为虚基类,则在A中自会产生一个基类对象作用:解决二义性问题 代码示例: #include <iostream> using namespace std; /* 虚 阅读全文
posted @ 2020-08-31 22:08 DNoSay 阅读(164) 评论(0) 推荐(0) 编辑
摘要: C++继承中的二义性:1 一个派生类A继承自多个具有某些同名成员a,b,c的基类B,C,..., 访问这些成员导致的二义性解决方法:1 在访问时加上基类名加作用域符2 在派生类中重新定义自己的该成员2 一个派生类A继承自多个基类B,C,..., 这些基类又是同一基类D的派生类, 在派生类A中访问继承 阅读全文
posted @ 2020-08-31 21:37 DNoSay 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 多继承 多继承: 一个类继承多个基类语法:class 派生类名:继承方式 基类名1, 继承方式 基类名2{};多继承类的派生类中访问基类同名对象基类名::变量名 代码示例: #include <iostream> using namespace std; /* 多继承: 一个类继承多个基类 语法: 阅读全文
posted @ 2020-08-31 20:50 DNoSay 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 基类不同访问权限的成员不同继承方式下访问权限 继承方式 基类成员 子类中访问权限 子类内存模块访问权限 子类对象访问性 私有继承 私有 不可访问的 不可访问 不可访问 保护 保护的 可以访问 不可访问 公有 公有的 可以访问 可以访问 保护继承 私有 不可访问的 不可访问 不可访问 保护 私有成员 阅读全文
posted @ 2020-08-31 20:05 DNoSay 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 赋值兼容规则:在公有继承的情况下,一个派生类的对象可以作为基类对象使用1 派生类对象可以赋值给基类对象2 派生类对象的地址可以赋值指向基类对象的指针3 派生类对象可以初始化基类的引用 代码示例: #include<iostream> using namespace std; /* 赋值兼容规则:在公 阅读全文
posted @ 2020-08-31 19:00 DNoSay 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 1, 派生类不会继承基类的构造 2, 派生类可以调用基类的构造 3, 使用初始化列表调用基类的构造 4, 当基类中有默认构造函数或者无任何构造函数时, 可以在派生类构造函数定义时不显式调用基类构造函数, 即编译器隐式调用 5, 当基类中无无参构造函数, 必须在派生类构造函数中显式调用基类构造函数, 阅读全文
posted @ 2020-08-31 18:58 DNoSay 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 为什么要重载赋值运算符? 在用户定义类后, 编译器会默认提供无参构造(空实现), 析构(空实现), 拷贝构造(值拷贝), 重载赋值运算符(值赋值) 但是若类成员属性为指针变量时, 编译器提供的重载赋值运算符只会简单的把指针变量的值赋值, 而不会申请一份新的内存空间, 将指针指向的变量赋值给这片内存空 阅读全文
posted @ 2020-08-29 10:08 DNoSay 阅读(235) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 15 下一页