![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++
文章平均质量分 75
随心而动随意而行
time waits no man
展开
-
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译 刘未鹏(pongba)C++的罗浮宫(http://blog.csdn.net/pongba) 首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win3转载 2014-02-04 10:56:37 · 452 阅读 · 0 评论 -
c++强制转化
强制转化四种类型可能很多人都常常忽略就象我一样,但是有时还是比较有用的。不了解的建议看看,一些机制我也不是十分了解,只是将一些用法写出来让大家看看。 2004-11-27 9:00强制转化无论从语法还是语意上看,都是c++中最难看的特征之一。但是基于c风格的转化的语义的转载 2014-02-18 20:51:41 · 525 阅读 · 0 评论 -
虚函数表存放在哪里
1.虚函数表是全局共享的元素,即全局仅有一个.2.虚函数表类似一个数组,类对象中存储vptr指针,指向虚函数表.即虚函数表不是函数,不是程序代码,不肯能存储在代码段.3.虚函数表存储虚函数的地址,即虚函数表的元素是指向类成员函数的指针,而类中虚函数的个数在编译时期可以确定,即虚函数表的大小可以确定,即大小是在编译时期确定的,不必动态分配内存空间存储虚函数表,所以不再堆中.根据以上特征,原创 2014-02-17 08:59:02 · 2589 阅读 · 0 评论 -
C++中对成员访问操作符->的重载
转自:http://kelvinh.github.io/blog/2013/11/20/overloading-of-member-access-operator-dash-greater-than-symbol-in-cpp/C++中对成员访问操作符->的重载前几天在看《C++标准程序库》,看到智能指针 std::auto_ptr 的源码的时候,对于运算符 -> 的重载,我脑袋中转载 2014-02-15 17:14:41 · 14091 阅读 · 1 评论 -
C++ Under The Hood(中译版)
程化 译排版美化:恋花蝶(http://blog.csdn.net/lanphaday)原文地址:http://blog.csdn.net/hellothere/archive/2006/02/27/611786.aspx译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++转载 2014-02-13 00:01:41 · 542 阅读 · 0 评论 -
c++继承中的内存布局
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ O转载 2014-02-13 00:00:56 · 459 阅读 · 0 评论 -
c++继承中的函数覆盖规则
问题:如果如图的继承方式,类B会不会自己复制一个和类A一模一样的test函数呢? 测试数据: #includeusingnamespace std; class A{public: void test(){ static int a=1; cout<<a++<<endl; }}; classB:public A原创 2014-02-12 09:47:45 · 3103 阅读 · 0 评论 -
c++的构造函数
c++的构造函数: c++在什么时候编译器会合成一个默认构造函数呢? 第一:我们要明确编译器合成的构造函数有两种,第一种是trivial(没有任何用处的),第二种是notrivial(有用的).其实,第一种编译器什么工作也没做,即没合成,只不过换了一种说法,叫做合成trivial construction.第二:编译器在什么情况下会合成默认构造函数呢?(以下全原创 2014-02-11 11:09:55 · 617 阅读 · 0 评论 -
C/C++编译和链接过程详解 (重定向表,导出符号表,未解决符号表)
转自:http://blog.csdn.net/yby4769250/article/details/7360483详解link 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要转载 2014-02-04 11:29:53 · 590 阅读 · 0 评论 -
C语言的编译链接过程详解
本文出自 “成长之路” 博客,请务必保留此出处http://7905648.blog.51cto.com/7895648/1297255学过C语言的人都应该知道,我们所编辑的C语言程序是不能直接放到机器上运行的,它只不过是一个带".c"后缀的文件(也称为源代码)而已,需要经过一定的处理才能转换成机器上可运行的可执行文件。我们将对C语言的这种处理过程称为编译与链接。编译就是把文本形式转载 2014-02-04 11:28:44 · 1027 阅读 · 0 评论 -
C++:在遍历/循环中删除map元素, 如何避免iter 迭代器失效
C++:在迭代中删除map的成员 首先要清楚一点,迭代器相当于是容器上的指针,容器可以自己管理内 存,因此迭代器可能失效。如果你在不知情的情况下使用了失效的迭代器,后果是不可预料的。可能程序立即崩掉,也可能什么事都没有发生。崩掉了算你 幸运,因为你至少知道出了问题,不然有你受的。回到正题,我想说什么呢?比如:程序代码map theMap;// add some转载 2014-03-18 13:23:06 · 2751 阅读 · 0 评论