C++Primer_读书笔记
文章平均质量分 60
Virtual_Func
小风扇吹风好吵
展开
-
多重继承与名字二义性
Q1:关于类作用域与名字二义性• 在多重继承下,名字查找同时在所有基类子树上并行进行• 成员函数或数据成员的查找通过两步实现:1) 名字查找2) 确定查到的名字是否合法• 在名字查找阶段并不考虑成员的访问级别• 一个基类子树上的派生类会覆盖其基类的名字• 虚基类中的成员是唯一实例Eg://①关系图如图1 class A { public:原创 2015-07-18 11:35:46 · 701 阅读 · 0 评论 -
运行时类型识别
Q1:运行时类型识别(RTTI)简述• 通过下面两个操作符实现RTTI:1) typeid 操作符,返回指针或引用所指对象的实际类型2) dynamic_cast操作符,将基类类型的指针或引用安全的转换为派生类型的指针或引用对于带虚函数的类,在运行时执行RTTI操作符,对其他类型,在编译时计算RTTI操作符Q2:dynamic_cast 操作符• dynamic_cast操作符一次执行两个操作:验原创 2015-07-18 11:45:18 · 573 阅读 · 0 评论 -
类成员指针
Q1:相关简要概述• 希望获得特定成员的指针,然后从一个对象或别的对象获得该成员时,使用类成员指针• 成员指针包含类的类型以及成员类型• 成员指针只用于类的非static成员,因为静态成员不属于任何一个对象,因此不需要用特殊的语法来获取静态成员• 数据成员的指针需要指明两点: 1.成员类型, 2.所属类类型。如:class X { public:原创 2015-07-18 17:51:17 · 522 阅读 · 0 评论 -
vector中不能存放引用类型!!!!!!!!
关于 vector 中不能存放引用,这是一个在初始C++时候就应该知道的问题,但是我居然没注意,还好及时发现了。《C++ primer》上说 vector 中不能存放引用的原因是:引用不支持一般意义上的赋值操作,而 vector中元素的两个要求是:1.元素必须能赋值2.元素必须能复制int a = 1;int c = 2;int & b = a;b = c;原创 2015-11-08 23:06:20 · 13851 阅读 · 0 评论 -
关于引用与指针,引用的实现
对引用的理解首先是根据《C++ primre》第五版中的解释,其次是我个人根据网上的资料,对C++实现引用本质的理解。下面分为两部分,首先理解引用体现出来的性质,其次是关于引用的具体实现。1.引用具体表现行为a.引用的定义:“引用为对象起了另外一个名字,引用类型将引用另外一种类型”—— 《C++ primer》5也就是说引用本身不是一个对象,而是其初始值的一个别名。b.引用的行原创 2015-11-10 11:04:41 · 818 阅读 · 0 评论 -
C++中 0 与 NULL 与 nullptr之间的关系,nullptr_t 的实现
参考了网上各种资料,理清楚了 0 与 NULL 以及 nullptr 的关系。1.从本质上 1) 0是int型的字面值常量 2) NULL 是预处理变量,定义在 cstdlib 中,其值是0 3) nullptr 是 nullptr_t 类型的字面值。2.cstdlib 中 NULL 的定义 #ifdef __cplusplus #define NULL 0原创 2015-11-10 11:40:46 · 1379 阅读 · 3 评论 -
字面值常量的知识点
1.每个字面值常量都是有类型的整型字面值常量:在没有指定时,整型字面值常量的类型是 int ,long,longlong 中能存储的最小尺寸。(short 类型没有对应的字面值)浮点型字面值常量:在没有指定时,默认是 double 类型字符串字面值常量:类型为 char[n] *... 其中每个字面值常量的类型都是可以通过加前缀或后缀进行指定2.字符串字面值串接在C原创 2015-11-10 11:56:21 · 760 阅读 · 0 评论 -
using声明与using指示的区别(在作用域上)
在《C++ Primer》第五版十八章中详细描述了 using 指示与 Using 声明的区别,个人也想了好久。首先,明确一下 using 声明与指示using 声明: using std::cout;using 指示: using namespace std;1.初步展示区别在我们通常的理解下,using 声明引入了一个名字,在声明之后的作用域中,所有用到该名字的地方,都是指的改原创 2015-11-13 12:41:50 · 2821 阅读 · 2 评论