- 博客(4)
- 资源 (1)
- 收藏
- 关注
原创 c++ primer 类中函数调用过程解析(虚函数与作用域) P550疑问解析
函数调用过程即c++ primer 第五版中P549所谈,这里强调几点。 假定是p->mem() 或者obj.mem()首先确定静态类型,即p的类型。然后在这个静态类型中名字查找函数,即查找有没有mem。即 名字查找。若没有则去静态类型(即p的类型)的直接基类中找,仍没有继续向基类中找。直到基类顶端。仍没有的话,就返回查找失败,发生错误。若找到了,接着类型检查,如果类型匹配...
2018-03-29 21:58:35 278 1
原创 C++ primer 详解派生类向基类转换的可访问性
派生类向基类转换的可访问性c++ primer第五版 P5441.首先谈谈protected作为成员访问符的一个情况。对类用户不可访问。对派生类的成员和友元可以访问。最重要的一条性质 派生类的成员及友元只能通过派生类对象去访问基类的protected成员,而不能通过基类对象去访问基类的proteced成员。 即如下代码: “` class Base { public...
2018-03-28 16:39:12 446
原创 C++ primer 当vector中的push_back遇到移动构造函数会发生什么
首先仔细阅读 C++ primer 第五版 P474 Note下面的一段话意思是说当我们在类中定义了移动构造函数的时候,假设这个移动构造函数是noexcept的,类似对应StrVec类的操作,vector可能会重新分配内存,也就是说会将元素从旧空间移动到新内存中去。这个过程中就会发生移动构造函数注意 这里要注意一点,C++11规定的是移后源对象是一定要处于可析构的状态,意思是说移后源对象有可能执行
2018-03-20 21:48:04 1423 1
转载 c++中的.hpp文件
c++中的.hpp文件 hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该cpp文件即可,无需再 将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,也不用再发布烦人的lib与dll,因此非常适合用来编写...
2018-03-19 20:27:35 291
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人