- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 C++的多态
今天问到关于C++的多态性,作为面向对象的三大特性之一,这个也是很基础的,结果一时紧张,只答出来了使用虚函数来实现的多态这一点,后来面试官说还有模板呢啊,恍然大悟,回来后就多态性仔细又看了看,现在总结一下所谓多态,字面意思就是 多种状态,使用方面统一的接口来实现不同的操作,大家熟知的使用虚函数来实现的多态叫运行时的多态,此外还有静态多态,就是在编译时候就已经确立了状态关系,此外,还流传着两个多态的说法,一说是 函数多态,一说是 宏多态,下面来一一介绍一、函数多态我们想,如果要用函数来统一接口,那要怎么办,
2011-01-27 21:37:00 2012
原创 八皇后问题(回溯法)
#includeusing namespace std;#define N 8//N代表皇后数void queen(){ int Count=0; //计算总共的解的数量 int column[N+1]; //column[m]=n表示第m行,第n行放置了皇后,这里下表并从0开始 int row[N+1]; //row[m]=1表示第m行没有皇后,=0表示有皇后 int b[2*N+1]; //b[m]=1表示第m条主对角线没有皇后, int
2011-01-22 20:57:00 12439 6
转载 Qt之美(三)隐式数据共享
<br /><br />为了最大化资源使用,和最小化数据拷贝,Qt在很多类中用到了隐式数据共享,以便数据仅在被写入时才被拷贝。该机制也被称为flyweight模式。<br />让我们以QByteArray为例,看看其是如何实现的。其内部使用一个名为Data的私有结构体来追踪共享的数据:<br /> struct Data { QBasicAtomicInt ref; // 引用计数器,对其的操作是原子的 int alloc; // 已分配的空间大小 int size; // 数据的实际大小
2011-01-06 13:12:00 4659
转载 Qt之美(二)元对象
<br /><br />除了D指针,Qt中另一个很有意思的部分就是Q_OBJECT宏了。该宏提供了对元对象的访问,使得能够使用比如信号和槽等QObject的更多特性。元对象提供了诸如类名、属性和方法等的信息,也被称为“反射”。<br /><br />通过使用QMetaObject,我们能够用如下代码显示一些类的信息:<br /> QObject obj; const QMetaObject *metaObj = obj.metaObject(); qDebug() << "class name: " <
2011-01-06 13:10:00 2838
转载 Qt之美(一) D指针/私有实现
<br /><br />相信不少刚开始阅读Qt源代码的朋友在看到其中的Private类和诸如Q_D、Q_Q等宏时都会思考,为什么Qt要用这样一个设计模式呢?这样一段增加了不少复杂度的代码,到底有多大的好处呢?简单的说,这样的好处在于保证代码的二进制兼容性。<br />什么是二进制兼容性?大名鼎鼎的KDE项目是这样介绍的:一个库是二进制兼容的,如果一个程序和某个库的某个版本动态链接,并且不需要重新编译,即可在安装有该库较新版本的环境中运行。为什么要保证二进制兼容性?如果不能保证库的二进制兼容性,就意味着每次发
2011-01-06 13:07:00 2544 1
原创 Qt应用程序只运行一个实例
<br />在实际应用中,我们经常需要让应用程序只有一个实例,再打开新的文档或者页面时,只是替换现在的窗口或者新打开一个标签,而不是重新启动一次应用程序。Qt中是否可以做到这样呢,答案是肯定的,因为Qt本身可以直接调用系统API,肯定可以做到,但是我们希望找到一个跨平台的通用的解决方案。 <br /> <br />这就要用到Qt的QLocalSocket,QLocalServer类了,这两个类从接口上看和网络通信socket没有区别,但是它并不是真正的网络API,只是模仿了而已。这两个类在Unix/Linu
2011-01-05 16:18:00 3344
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人