C++
whycold
这个作者很懒,什么都没留下…
展开
-
c++成员变量初始化问题
<br />C++为类中提供类成员的初始化列表类对象的构造顺序是这样的:<br />1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员<br />2.进入构造函数后在构造函数中执行一般计算 1.类里面的任何成员变量在定义时是不能初始化的。<br /> 2.一般的数据成员可以在构造函数中初始化。<br /> 3.const数据成员必须在构造函数的初始化列表中初始化。<br /> 4.static要在类的定义外面初始化。 <br /> 5.数组成员是不能在初始化列表里初始化的。<br />转载 2011-01-07 10:57:00 · 618 阅读 · 0 评论 -
C++中反射的实现
众所周知C++语言本身是没有反射这个东东的,但C++的强大之处在于它把不能的化为可能。要实现反射主要有以下两点问题:1、每个要反射的类里定义一个回调函数(用来创建这个类实例)2、在程序开始时把每个要反射的类的回调函数以类名为键存入全局哈希表(1)首先要有一个类用来注册和获取类/*******classfactory.h********/#include #include原创 2012-09-03 20:43:08 · 795 阅读 · 0 评论 -
循环删除vector元素
void main(){ vector in_vec; in_vec.push_back(1); in_vec.push_back(2); in_vec.push_back(3); in_vec.push_back(4); in_vec.push_back(5); in_vec.push_back(6); vector::iterat原创 2012-05-16 15:45:13 · 914 阅读 · 0 评论 -
virtual继承
今天专门看了一下虚继承的东西,以前都没怎么用过,具体如下: 父类: class CParent { .... }; 继承类的声明比较特别: class CChild : virtual public CParent { .... } 请问,这个"virtual"是什么作用及含义? ----------转载 2012-03-29 11:12:09 · 701 阅读 · 0 评论 -
C结构体中的函数指针与函数
Tag:C<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://feizf.blogbus.com/logs/3990457.html<br /><br />1. 函数指针 <br />一般的函数指针可以这么定义:<br />int(*func)(int,int); <br />表示一个指向含有两个int参数并且返回值是int形式的任何一个函数指针. 假如存在这样的一个函数:<br />int add2(int x,int y)<br />{<br />ret转载 2011-04-06 18:14:00 · 949 阅读 · 0 评论 -
海量数据面试
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文件的大约为300M。s 遍历文件b,采取和a相同的方式将url分别存储到1000各小文件(记为)。这样处理后,所有可能相同的url都在对应的转载 2011-03-27 21:58:00 · 841 阅读 · 0 评论 -
VS2005使用静态库(lib)小结
在撰写正文之前,请允许我发表一点小小的感叹的机会,谢谢!首先我得感谢互联网,因为有你,让我学到了更多;其次,我要感谢广大博主们的无私奉献精神,因为你们精心记录的每一篇日志,帮助了无数个像我一样初涉C++的充满迷茫的IT民工。 经过查阅无数博主们的结晶,加上自己动手实践的结果,今天我也记录下在使用VS2005调用lib的心得体会。因为才疏学浅、文笔欠佳,故文中有不妥之处,还请各位大虾批评指出,助我不断提升自己的能力,我会非常感谢您的! 好了,言归正传。使用lib文件,需要三个步骤:转载 2011-03-15 20:40:00 · 3907 阅读 · 1 评论 -
pragma comment的使用
<br />该宏放置一个注释到对象文件或者可执行文件。#pragma comment(comment-type [,"commentstring"] )<br /><br />comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。<br />commentstring是一个提供为comment-type提供附加信息的字符串,<br />Remarks:<br />1、compiler:放置编译器的版本或者名字到一个对象文件,该选项是被l转载 2011-03-14 21:41:00 · 709 阅读 · 0 评论 -
演练:创建和使用静态库
<br /><br />在本演练中,您将创建一个静态库 (LIB),其中包含可供其他应用程序使用的有用例程。使用静态库是重用代码的一种绝佳方式。您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。<br /> 本演练使用本机 C++。有关使用本机 C++ 创建动态链接库 (DLL) 的演练,请参见 演练:创建和使用动态链接库。有关使用面向公共语言运行库的 Visual C++ 的演练,请参见演练:创建和使用托管程序集。<br />本演练涵盖以转载 2011-03-14 21:42:00 · 626 阅读 · 0 评论 -
CTO们关于C/C++的经验
<br />1、越界<br /> 越界是最难查的,注意memcpy strcpy,strncpy这些函数使用前一定要检查边界。特别是你提供函数给别人用时,你的函数中用到了这些东西,一定要检查别人传给你的指针的边界。<br />2、变量初始化<br /> 这种问题要养成好习惯,否则出来偶然性问题,非常难查。<br />3、多线程指针管理<br /> 在多线程环境下使用指针时,最好采用引用计数,让最后一个放充引用计数时,指针删除,避免一个线程在使用指针,另外线程删除掉。<br />4、多线程锁转载 2011-02-14 16:15:00 · 981 阅读 · 0 评论 -
关于《关于C++引用类型变量》
<br /><br />在JAVAEYE博客中看到《关于C++引用类型变量》一文,原文地址http://tinggo.javaeye.com/blog/755793<br /> <br />随着设计模式的学习和实践,C++中引用的使用愈发平凡。但是C++中引用类型变量到底是什么东西,这种变量与Java C#中的引用值有什么区别和联系,直到今日才有所了解。这一切都出自于一次偶然的发现。 <br />由于过去长期使用Java这种没有指针的语言,其引用值的概念早就深入人心。 <br />我们知道,当有如下代码时,转载 2011-01-18 15:52:00 · 1068 阅读 · 0 评论 -
Cpp深入:异常体系结构
转至:http://www.189works.com/article-16906-1.html1. 异常简介2. 函数异常列表3. 堆栈解退4. 标准库exception类型简介5. 继承中的异常6. 异常何时迷失?7. 异常处理最佳实践1. 异常简介c++中的异常使用关键字try{} catch(Type ){}来捕获。可以使用throw关键字抛出异常。如果在转载 2012-09-10 12:32:54 · 675 阅读 · 0 评论