- 博客(181)
- 资源 (6)
- 收藏
- 关注
转载 C++ 对象的内存布局(下)
C++ 对象的内存布局(下) 陈皓http://blog.csdn.net/haoel <<<点击这里查看上篇 重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代
2011-07-13 15:13:30 646 1
转载 C++ 对象的内存布局(上)
C++ 对象的内存布局(上) 陈皓http://blog.csdn.net/haoel 点击这里查看下篇>>>前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的
2011-07-13 15:12:48 584
转载 Solmyr 的小品文系列之九:次序问题
“zero 帮帮忙吧 ~~ ” 听到这个充满诚意的声音,zero 垮下了双肩,感觉自己处于彻底崩溃的边缘 ———— 几个月来,每次 pisces 遇到什么不能解决的问题,总是用这个开场白来求 zero,而后 zero 就不得不面对各式各样匪夷所思的古怪问题。 “她怎么就能弄出那么
2011-07-12 16:42:53 585
转载 Solmyr 的小品文系列之八:拷贝
“zero 帮帮忙吧 ~~ ” “灿烂”的笑脸,充满诚意的眼神,再加上点头哈腰的姿势,这三者构成了一尊名为“有求于人”的塑像。 在 QQ 上聊的正欢的 zero 抬起头,看着塑像的作者和材料 ——— pisces ,方圆五十米内唯一的女性程序员 ——— 问道:“什么事?” “我这
2011-07-12 16:35:19 598
转载 Solmyr 的小品文系列之七:异常
大雨。 乌云象铅块一样低低的压了下来,豆大的雨滴打的玻璃窗啪啪作响,难得一见的异常天气正在竭力表现它令人讨厌的一面。不过这一切似 乎并没有影响到 Solmyr,他仍然以他习惯的舒适姿势半躺在宽大的椅子里,手里还托着一杯热腾腾的果汁,在他背后,zero 在键盘上敲打着什么。 “唉,
2011-07-12 16:26:26 612
转载 Solmyr 的小品文系列之六:成对出现
“呼 ~~~~ 啪!” 一个文件夹划出一道优美的弧线,越过四张桌子,两堵隔墙,一条走道,不偏不倚的穿过了正在交谈的路人甲和路人乙,精准的命中了目标。放眼公司上下,拥有这般投掷手法的,只有 Solmyr ,而他的目标,自然是 zero 了。 “哎哟!”,zero 摸了摸被击中的后脑
2011-07-12 16:19:54 563
转载 Solmyr 的小品文系列之五:垃圾收集
class my_intptr { private: int* m_p; int* m_count; public: my_intptr(int* p) { m_p = p;
2011-07-12 15:07:59 674
转载 Solmyr 的小品文系列之三之四:对象计数
台下的座位已经坐满了,除了 Solmyr 的位子。zero 手足无措的望着那唯一的空位,开始第一百次的哀叹为什么自己会落到这样一个尴尬的位置。仅仅几分钟前,一切都还很正常,直到 ………… ………… 主持人:“下一个议程,题为‘对象计数’的 C++ 编程技术讲座,主讲人是zero。
2011-07-12 14:04:43 828
转载 Solmyr 的小品文系列之二:模棱两可的陷阱
void SomeFunc(int i) ………… void SomeFunc(float f) ………… int main(void) { ………… SomeFunc(1.2); // Error! ambig
2011-07-12 11:11:42 509
转载 Solmyr 的小品文系列之一:字符串放在哪里?
char* p1 = "Hello";char* p2 = "Hello";字符串Hello称为字符串常量,Hello放在文字常量区,不能被修改,所以*p1,*p2实际上是const char*指向常量的指针,并且指向同一个地址采用这种定义方式的话,末尾会添加一个'\
2011-07-12 10:55:02 533
转载 继承与虚函数
继承的特性继承是面向对象中引入的重要特性之一,它的一个重要的特点就是子类是父类,父类不是子类。也就是说:1. 如果基类指针指向子类对象(pbase=&pchild),则该指针只能调用基类定义了的函数;2. 如果子类指针指向基类对象(pchild=(child *)pb
2011-07-11 11:20:30 1020
转载 c++ 覆盖、重载、隐藏
“overload”翻译过来就是:超载,过载,重载,超出标准负荷;“override”翻译过来是:重置,覆盖,使原来的失去效果。先来说说重载的含义,在日常生活中我们经常要清洗一些东西,比如洗车、洗衣服。尽管我们说话的时候并没有明确地说用洗车的方式来洗车,或者用洗衣服的方式来洗一件
2011-07-11 11:04:54 596
转载 转:scanf(), getchar(), 以及gets()函数注意点
----------------------------------------------------| 问题描述一:(分析scanf()和gets()读取字符) |---------------------------------------------------- scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数出了问题,却找不出其中的原因。下面先看一个很简单的程序:程序1:#include in
2011-05-05 20:45:00 3203
转载 程序员面试题精选100题(08)-求1+2+...+n
<br /><br />题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。<br />分析:这道题没有多少实际意义,因为在软件开发中不会有这么变态的限制。但这道题却能有效地考查发散思维能力,而发散思维能力能反映出对编程相关技术理解的深刻程度。<br />通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。同样,递归函数也需要用if
2011-04-14 17:00:00 846
转载 程序员面试题精选100题(55)-不用+、-、×、÷数字运算符做加法
题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进位,此时相加的结果是12(个位数5和7相加不要进
2011-04-14 10:32:00 668
转载 程序员面试题精选100题(55)-不用+、-、×、÷数字运算符做加法
<br /><br />题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。<br />分析:这又是一道考察发散思维的很有意思的题目。当我们习以为常的东西被限制使用的时候,如何突破常规去思考,就是解决这个问题的关键所在。<br />看到的这个题目,我的第一反应是傻眼了,四则运算都不能用,那还能用什么啊?可是问题总是要解决的,只能打开思路去思考各种可能性。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进
2011-04-14 10:32:00 761
转载 c++对象模型
VC++,掀起你的盖头来——谈VC++对象模型(美)简 格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++
2011-04-06 22:45:00 563
转载 一道题
N个鸡蛋放到M个篮子中,篮子不能为空,要满足:对任意不大于N的数量,能用若干个篮子中鸡蛋的和表示。写出函数,对输入整数N和M,输出所有可能的鸡蛋的放法。1.先取M个蛋放入M个篮子(一个篮子一个蛋)2.剩下的(N-M)个蛋按照1,2,4,。。方式依次维持各个篮子中蛋的数量(要有一个篮子保持只有一个蛋),若最后的蛋不是2的方次,有多少放入一个篮子3.取L(L另外:题目不完整,N与M应该有数量关系:Mint F( int p[], int n, int m ){ if( n
2011-03-31 22:13:00 933
转载 一道题
有一字符串由M个单词组成单词之间有空格隔开(只有空格,没有其他标点符号),有N个关键字,现在要在字符串中找出包含N个关键字(每个关键字至少出现一次,没有说要不要按什么顺序)的最短子串。函数原型:String extractSummary(String description, String[] keywords)-----------------------------------------------------------------------------------1.为了方便处理。先将单词转换成
2011-03-30 11:00:00 945
原创 hw去年上机题2
字符串提取数字完成函数void take_num(const char *strIn, int *n, unsigned int *outArray)如输入strIn="ab00cd+123fght456-25 3.005fgh"输出n=6outArray={ 0, 123, 456, 25, 3, 5 }不考虑小数如3.005输出3和5-------------------------------------------------------------------------------------
2011-03-25 16:44:00 745
原创 hw去年上机题1
删除字符串中所有给定的子串问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数:int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】 str:输入的被操作字符串sub_str:需要查找并删除的特定子字符串【输出】 result_str:在str字符串中删除所有sub_str子字符串后的结果【返回】删除的子字符串的个数注:I、子串匹配只考虑最左匹配情况,即只需要
2011-03-24 17:09:00 1109
转载 如何判断一个数为无符号数还是有符号数
网上搜到的去年sybase在上海交大的一道笔试题,猛一下还真想不出来怎么整,总是以为正数的时候无法判断,后经实验室一牛师弟点拨,方才编出以下代码,主要利用了无符号数和有符号数相减结果为无符号数的性质。#includeint main(){ //uns
2011-03-15 10:01:00 10949 1
转载 C++中一个容易被忽视的名字查找规则
<br /><br />现在,有下面的代码:namespace lx1<br />{<br /> class Point3d<br /> {<br /> public:<br /> Point3d (double dx, double dy, double dz)<br /> : m_dX(dx), m_dY(dy), m_dZ(dz)<br /> {}<br /><br /> double getX() const { re
2011-03-07 10:36:00 1132
转载 华为面试题算什么,这个背会了外企随便进
我为各位整理出英文面试最常见的五大问题,并且提醒各位一些回答的技巧,希望大家能针对这些问题多演练,当成练习英文面试的重点。 问题一:Could you please describe yourself?(能否请你形容一下自己?)这个问题,一来是想要了解你是什么样的人,二来
2011-03-06 17:21:00 950
转载 grep 与正则表达式
<br />rep一般格式为:<br />grep [选项] 基本正则表达式 [文件]<br />这里基本正则表达式可为字符串。<br />1.1 双引号引用<br /> 在grep命令中输入字符串参数时,最好将其用双引号括起来。例如:“m y s t r i n g”。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:<br />“jet plane”,如果不用双引号将其括起来,那么单词p l a n e将被误认为是一个文件,查询结果<br />将
2011-03-04 22:27:00 893
转载 浅析C++中的this指针
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();
2011-03-04 17:00:00 927
转载 关于C++基类、派生类的引用和指针
class A{ ......}class B : public A{ .....}(1)A *pA = new B(2)B b; A &rb=b;第(1)个是说一个基类的指针指向派生类的实例?这样做有什么意义?第(2)个是什么意思
2011-03-03 21:45:00 10168 1
转载 C++的类型转换:static_cast、dynamic_cast、reinterpret_cast
<br /><br />C 风格(C-style)强制转型如下:<br />(T) exdivssion // cast exdivssion to be of type T<br />函数风格(Function-style)强制转型使用这样的语法:<br />T(exdivssion) // cast exdivssion to be of type T<br /> <br />这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。<b
2011-02-28 16:48:00 940
转载 关于拷贝构造函数
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生。对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什么用,其实复制构造函数能解决一些我们常常会忽略的问题。 为了说明
2011-02-28 10:50:00 926
转载 BM算法
<br />1、概述<br />在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。<br />BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。<br />常规的匹配算法移动模式串的时候是从左到右,而进行比较的时候也是是从左到右的,基本框架是:<br /> + expand sourceview plaincopy to clipboardprint?<br /> <br />而BM算法在移动模式串的时候是从
2011-02-26 17:05:00 17868 3
转载 共用体union用法讲解
<br />共用体union用法讲解<br />一、联合说明和联合变量定义 <br /> 联合也是一种新的数据类型, 它是一种特殊形式的变量。 <br /> 联合说明和联合变量定义与结构十分相似。其形式为: <br /> union 联合名{ <br /> 数据类型成员名; <br /> 数据类型成员名; <br /> ... <br /> } 联合变量名; <br /> 联合表示几个变量公用一个内存位置, 在不同的时间
2011-02-25 16:29:00 17213
转载 c++ const成员函数
一些成员函数改变对象,一些成员函数不改变对象。例如: int Point::GetY(){ return yVal;} 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt (int x,
2011-02-22 10:45:00 868
转载 进程上下文
<br /><br />请问进程上下文是什么意思?<br />回答者的答案集合:<br />1.<br />进程上下文一般在进程切换中提到,也就是当进程要切换时关于当前进程的寄存器内容以及内存页表的详细信息等等内容,一句话概括也就是关于描述进程的信息。<br />2.<br /> <br /> <br />同意楼上的,就是很多书本上提到的进程控制块PCB,保存着进程的很多详细信息<br />3.<br />补充(LINUX完全注释中的一段话):<br />当一个进程在执行时,CPU的所有寄存器中的值、进程的
2011-02-21 14:03:00 1493
转载 extern "C"
时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplu
2011-02-19 21:14:00 592
转载 事务——恢复和并发控制的基本单位
<br /><br />(1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。<br />这些操作要么都做,要么都不做,是一个不可分割的工作单位。<br />通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。<br /><br />(2):事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。 <br />COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物
2011-02-18 19:28:00 6300
转载 UML
UML类图关系大全1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必
2011-02-18 16:59:00 917
转载 软件测试
<br /><br />按照瀑布模型的阶段划分,软件测试可以分为单元测试,集成测试,系统测试。请问以下那项测试不属于系统测试的内容(B)<br />A. 压力测试<br />B. 接口测试<br />C. 功能测试<br />D. 安全测试<br />E. 性能测试<br />瀑布模型:需求分析,设计,开发,测试,继承,维护<br />单元测试,是集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。集成测试把已测试过的模块组装起来,主要对与设
2011-02-18 16:55:00 1790
转载 软件能力成熟度模型:CMM五个级别介绍
CMM 为企业的软件过程能力提供了一个阶梯式的进化框架,阶梯共有五级。第一级只是一个起点,任何准备按CMM 体系进化的企业都自然处于这个起点上,并通过它向第二级迈进。除第一级外,每一级都设定了一组目标,如果达到了这组目标,则表明达到了这个成熟级别,可以向下一级别迈进。 从纯粹的个人行为发展到有计划有步骤的组织行为… 第一级:初始级(Initial); 第二级:可重复级(Repeatable); 第三级:已定义级(Defined); 第四级:受管理级(Managed); 第五级:优化级
2011-02-18 16:45:00 3378
转载 算法的时间复杂度(计算实例)
<br />定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数 T(n)称为这一算法的“时间复杂性”。<br /><br />当输入量n逐渐加大时,时间复杂性的极限情形称为算法的“渐近时间复杂性”。<br /><br />我们常用大O表示法
2011-02-18 11:28:00 1093
转载 TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节
<br />1.静态IP选路1.1.一个简单的路由表<br />选路是IP层最重要的一个功能之一。前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由。这里就不重复了。首先来看看一个简单的系统路由表。Destination Gateway Genmask Flags Metric Ref Use Iface<br />192.168.11.0 * 255.255.255.0 U 0
2011-02-14 17:17:00 770
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人