C++ Primer-学习笔记#1 第14章_C++中的代码重用
来源:互联网 发布:代理地址和端口 编辑:程序博客网 时间:2024/05/17 06:06
博主想到写博客来写学习笔记时书已经看到第14章了,那今后的学习笔记都从C++ Primer(中文 第五版)第14章开始记录。
“学生是什么?入学者?参加研究的人?残酷现实社会的避难者?有姓名和一系列考试分数的人?“为何读到这句还是想笑....
回到正题,以下记录为我认为有必要记录或记忆的东西。
私有继承中,在不进行显示类型转换的情况下,不能将派生类的引用或指针賦给基类引用或指针。即私有继承在何处都不能使用隐式向上转换,而保护继承可在派生类内使用隐式向上转换,公有继承则能在类内外都可使用隐式向上转换。这是C++Primer中的写明的,不过博主对这点有疑惑就写了代码进行测试:
#include <iostream>using std::cout;using std::endl;class base_test_class{public: int inta; base_test_class() { inta = 0; }};class test_class:public base_test_class{public: void test_class_func1(base_test_class * p) { }; void test_class_func2(test_class * p); };void test_class::test_class_func2(test_class * p){ base_test_class * pb = p; cout << pb->inta << endl;}int main(){ base_test_class * pa = new test_class; // #1 test_class * pb = new test_class; pb->test_class_func1(pb); // #2 pb->test_class_func2(pb); return 0;}使用公有继承时,以上代码将编译通过,但使用保护继承protected和私有继承private编译时将报错,错误相同:
test601.cpp: 在函数‘int main()’中:
test601.cpp:23:36: 错误: ‘base_test_class’是‘test_class’不可访问的基类
test601.cpp:25:32: 错误: ‘base_test_class’是‘test_class’不可访问的基类
将代码#1、#2两句注释后,编译将通过。即在私有继承派生类内也可以像保护继承一样使用隐式向上转换,这点和C++Primer中说的不同,推测可能是编译器更新后的改动。
0 0
- C++ Primer-学习笔记#1 第14章_C++中的代码重用
- C++Primer学习笔记(代码重用)
- C++ Primer Plus 第14章 C++中的代码重用
- 2012/2/3 《C++ Primer Plus》第十四章:C++中的代码重用 学习笔记
- 【读书笔记:C++ primer plus 第六版 中文版】第14章 C++中的代码重用
- C++ Primer Plus -- 第14章 C++的代码重用 笔记
- 第14章-C++中的代码重用
- C++Primer第6章学习笔记
- C++primer学习笔记 第7章
- 《C++ Primer Plus(第六版)》(28)(第十四章 C++中的代码重用 笔记)
- C++学习笔记(第14章->代码重用->包含,继承,多重继承,虚基类)
- C++学习笔记(第14章->代码重用->类模板)
- 第14章 代码重用
- 《C++ primer plus》第十四章:C++的代码重用 学习笔记
- 2013.05.14_C++primer笔记
- 【C++ Primer】第十四章 C++中的代码重用
- c++primer第十四章c++代码重用(二)
- 《c++primer》笔记 第1章 开始
- 网站快照不更新有哪些原因
- 端午节假期----心情记录
- LeetCode Next Permutation
- 很有意思的程序员数据比较
- 条款07:为多态基类声明virtual析构函数
- C++ Primer-学习笔记#1 第14章_C++中的代码重用
- 精确计算java中float和double的精度
- Win7下IIS中配置Python脚本运行环境
- Libxml2的学习—生成、解析xml文件
- Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
- C++代码札记(五)水仙花数推算
- HDU - 4815 Little Tiger vs. Deep Monkey (长春赛区C题)
- 常数变易法学习笔记
- OCP 1Z0 051 166