C++
ma_nong
这个作者很懒,什么都没留下…
展开
-
递归+优化 一维数组实现矩阵乘法
1. 计算T(n)队列,规则是T(n) = T(n - 1) + T(n - 2) + T(n -3),其中T(0) = T(1) = 1,T(2) = 2。 函数定义: int Tribonaci(int n) { } 备注,不考虑证整数溢出,尽可能优化算法。 这一题我一看就知道要考什么,很显然的递归定义,但也是很显然的,这里所谓的优化是指不要重复计算。转载 2012-06-13 22:09:07 · 2051 阅读 · 0 评论 -
const对象和const成员函数
1、const对象只能访问const成员函数。 2、const成员函数不能修改任何数据成员。原创 2012-12-03 00:10:06 · 457 阅读 · 0 评论 -
C笔试题(判断大端小端模式)
C笔试题 (判断大端小端模式) 试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1 解答: int checkCPU( ) { { union w { int a; char b;转载 2012-11-14 00:16:43 · 1179 阅读 · 0 评论 -
内联函数
内联函数 (1)什么是内联函数? 内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。 (2)为什么要引入内联函数? 当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子: #define ABS(x) ((x)>0? (x):-(x)) 当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的转载 2012-09-24 17:09:37 · 579 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技转载 2012-09-25 01:10:46 · 417 阅读 · 0 评论 -
C++ 对象的内存布局(上)
前言 http://blog.csdn.net/haoel/article/details/3081328 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的转载 2012-09-25 01:08:16 · 404 阅读 · 0 评论 -
C++ 对象的内存布局(下)
重复继承 http://blog.csdn.net/haoel/article/details/3081385 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有自己的虚函数转载 2012-09-25 01:09:41 · 408 阅读 · 0 评论 -
线程同步(信号量,互斥,条件变量)
进行多线程编程,最头疼的就是那些共享的数据。因为你无法知道哪个线程会在哪个时候对它进行操作,你也无法得知那个线程会先运行,哪个线程会后运行。下面介绍一些技术,通过他们,你会合理安排你的线程之间对资源的竞争。 l 互斥量Mutex l 信号灯Semophore l 条件变量Conditions 先说一下互斥量。 什么时候会转载 2012-10-12 17:03:48 · 547 阅读 · 0 评论 -
虚拟继承内存布局图示
在同时使用了虚函数的时候,虚基类表可以合并到虚表(virtual table)中,每对象的虚基类表指针(vbptr)也可以省略(只需vptr即可)。 虚函数是C++众多运行时多态特性中开销最小,也最常用的机制。虚函数的好处和作用这里不再多说,应当注意在对性能有苛刻要求的场合,或者需要频繁调用,对性能影响较大的地方(比如每秒钟要调用成千上万次,而自身内容又很简单的事件处理函数)要慎用虚函数转载 2012-10-11 15:54:19 · 703 阅读 · 0 评论 -
虚函数、虚继承、sizeof
虚函数、虚继承、sizeof [cpp] view plaincopy // 练习.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include using namespace std; class A { public: A(){}转载 2012-10-09 22:57:22 · 792 阅读 · 0 评论 -
sizeof()计算一个类的对象大小和sizeof(string)的问题
http://blog.csdn.net/vangoals/article/details/4264512 关于类的大小sizeof()的计算 首先,来看看一个只有构造函数和析构函数的空类: [cpp] view plaincopy #include using namespace std; class Base转载 2012-09-16 21:16:24 · 2007 阅读 · 0 评论 -
给Qt程序添加图标
首先准备个ICO图标。 例如:luo.ico,你可以通过图片转换器把其他格式的图片转换成.ico格式的。 也可以自己去网上找。 用记事本新建个txt 里面就写一行: IDI_ICON1 ICON DISCARDABLE "luo.ico" 保存,修改后缀为.rc,例如: myapp.rc 把它和图标A.ico一起复制到你的QT工程项目的目录。 打开你的QT工程文件.pro(例如 "原创 2012-06-29 09:45:18 · 1194 阅读 · 0 评论 -
Qt C++中的关键字explicit
最近在复习QT,准备做项目了,QT Creator 默认生成的代码 explicit Dialog(QWidget *parent = 0)中,有这么一个关键字explicit ,用来修饰构造函数。以前在Windows下写程序的时候,基本上没有碰到这个关键字,那么这个关键字是做什么用的呢? 关键字 explicit 可以禁止“单参数构造函数”被用于自动类型转换。光看这一句似乎不太容转载 2012-06-27 16:36:02 · 27301 阅读 · 10 评论 -
C++,数据结构
http://topic.csdn.net/u/20090603/13/05ea579e-ba1d-416f-9305-f0bf9aa56e53.html http://kinghuimail.blog.163.com/blog/static/95820408201011139931364/ http://fishlife.iteye.com/blog/641330 1.用C++转载 2012-06-12 21:41:51 · 725 阅读 · 0 评论 -
a++和++a的区别
一道笔试题 (a++)+=a;是错误的。 (++a)+=a;是正确的。 解释:是一个左值问题。 a++不是一个左值,后++内部实现是先创建一个临时变量,再把值加1,返回临时变量的值。 ++a是一个左值,前++内部实现是直接对a先加1然后返回。原创 2012-11-21 12:40:06 · 885 阅读 · 0 评论