C++基类和派生类赋值(初始化)规则
2023-06-13 09:11:55 时间
派生类对象的地址可以赋值给基类指针,亦即派生类的指针可以赋值给基类的指针。
上面三条反过来是不成立的。例如,不能把基类对象赋值给派生类对象。
下面的程序能够成功编译,充分说明了上述三条规则。
class A { class B : public A //公有派生 int main() A a; B b; a = b; //派生类对象赋值给基类对象 A r = b; //派生类对象初始化基类引用 A* pa = //派生类对象地址赋值给基类指针 B* pb = pa = pb; //派生类指针赋值给基类指针 return 0; }
将派生类对象赋值给基类对象(如上面程序中的a=b;语句),在赋值号没有被重载的情况下,所做的操作就是将派生类对象中的基类对象逐个字节地复制到=左边的基类对象中。
在公有派生的情况下,可以说,派生类对象也是基类对象,任何本该出现基类对象的地方,如果出现的是派生类的对象,也是没有问题的。但如果派生方式不是 public,而是 private 或 protected,那么上面这个结论就不成立了。
21556.html
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- EasyC++44,单独编译
- c++语言截取字符串,详解C++ string常用截取字符串方法
- 手眼标定算法Tsai-Lenz代码实现(Python、C++、Matlab)
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- C++提高编程笔记合集
- C++运算符重载的一些规则
- C++基本概念_c语言 c++区别
- C++字符串加密_c++字符串连接函数
- C++ 命令行解析库TCLAP
- C++ Primer Plus习题及答案-第十四章
- 为什么时不时会看到「珍惜生命,远离 C++」?
- 【C++修炼之路】4. 类和对象(中):日期类实现
- C++STL——stack与queue
- C++运算重载符基础语法1
- c++基础篇之C++ 模板
- C++ 友元类使用 (friend)详解编程语言
- C++ STL关联式容器自定义排序规则(2种方法)
- C++ 类成员函数指针语法的友好指南
- c++临时对象的来源
- 不要被C++(自动生成规则)所蒙骗
- C++重载运算符的规则详解
- C++中指向结构体变量的指针
- k均值算法c++语言实现代码
- C++深度优先搜索的实现方法