2009年08月7日, 12:10 下午
有时为了快速的把代码的架子搭起来,并编译通过。会把一些负责具体实现细节的方法先空置。整个代码能编译通过后,再一边调试一边把那些空方法“填”好。
我一般是在这类空方法中加一个注释进行标注, 并让方法直接返回一个错误值。比如返回指针的方法就让它返回NULL,返回BOOL值的方法就让它返回false。有时还会在方法里放一个失败的断言,比如:
BOOL some_function()
{
//PK Not implement yet
assert(false);
return FALSE;
}
Continue reading ‘标记待实现功能’ »
2009年06月26日, 11:02 下午
原始发布日期:2007年03月10日 星期六 15:54
该程序的UI部分使用了WTL7.5。WTL7.5可以很容易的在微软的官方网站找到,安装也很简单。
另外使用了BOOST库中的部分内容。包括filesystem用于操作文件名和目录,可以在(http://lunatic.bokee.com/的“技术类”“文件、目录及相应的目录字符串的处理”)找到更详细的介绍。serialization用于将对象序列化在磁盘文件中。datetime用于做日期的计算。还用到了string algo做简单的字符串操作。因此你需要从(http://www.boost.org)下载boost的最新版本1.33.1,并在本地编译它。
Continue reading ‘Rcite – 一个英语学习辅助软件’ »
标签:
boost,
C++,
Recite,
wtl,
多语言支持,
序列化,
桌面主题风格,
源码,
英语,
英语学习 分类目录:
技术类,
杂类 |
1 条评论
2009年06月26日, 2:09 上午
原始发布日期:2005年12月1日 星期四 22:06
代码中所定义类的简单说明
Continue reading ‘C++对象布局及多态实现的探索(十三)’ »
标签:
C++,
函数调用,
多态,
对象布局,
对象模型,
源码,
类型转换,
菱形结构,
虚函数,
虚继承 分类目录:
C++对象模型,
技术类 |
评论
2009年06月26日, 1:49 上午
原始发布日期:2005年11月29日 星期二 20:43
后记
结合前面的讨论,我们可以看到,只要牵涉到了虚继承,在访问父类的成员变量时生成的代码相当的低效,需要通过很多间接的计算来定位成员变量的地址。在指针类型转换,动态转型,及虚函数调用时,也需要生成很多额外的代码来调整this指针。象前一篇中对C170对象的obj.foo()和obj.f170()两次调用,传递到两个函数中的this指针居然是不一样的。
Continue reading ‘C++对象布局及多态实现的探索(十二)’ »
2009年06月26日, 1:39 上午
原始发布日期:2005年11月28日 星期一 22:15
菱形结构的虚继承(3)
最后我们看看,如果在上篇例子的基础上,子类及左、右父类都各自定义了自己的虚函数,这时的情况又会怎样。
Continue reading ‘C++对象布局及多态实现的探索(十一)’ »
2009年06月26日, 1:28 上午
原始发布日期:2005年11月27日 星期日 20:26
菱形结构的虚继承(2)
我们再看一个例子,这个例子的继承结构和上一篇中是一样的,也是菱形结构。不同的是,每一个类都重写了顶层类声明的虚函数。代码如下:
Continue reading ‘C++对象布局及多态实现的探索(十)’ »
2009年06月24日, 4:38 上午
原始发布日期:2005年11月2日 星期三 22:39
菱形结构的虚继承
这次我们看看菱形结构的虚继承。虚继承的引入本就是为了解决复杂结构的继承体系问题。上一篇我们在讨论虚继承时用的是一个简单的继承结构,只是为了打个铺垫。
我们先看看这几个类,这是一个典型的菱形继承结构。C100和C101通过虚继承共享同一个父类C041。C110则从C100和C101多重继承而来。
Continue reading ‘C++对象布局及多态实现的探索(九)’ »
2009年06月24日, 12:17 上午
原始发布日期:2005年10月28日, 星期五 23:18
普通的虚继承
下面我们来看虚继承。首先看看这C020类,它从C010虚继承:
Continue reading ‘C++对象布局及多态实现的探索(八)’ »
2009年06月23日, 11:52 下午
原始发布日期:2005年10月27日 星期四 22:48
构造函数中的虚成员函数调用
在构造函数中调用虚成员函数,虽然这是个不很常用的技术,但研究一下可以加深对虚函数机制及对象构造过程的理解。这个问题也和一般直观上的认识有所差异。先看看下面的两个类定义。
Continue reading ‘C++对象布局及多态实现的探索(七)’ »
2009年06月23日, 10:50 下午
原始发布日期:2005年10月25日, 星期二 21:27
虚函数调用
我们再看看虚成员函数的调用。类C041中含有虚成员函数,它的定义如下:
struct C041
{
C041() : c_(0x01) {}
virtual void foo() { c_ = 0x02; }
char c_;
};
Continue reading ‘C++对象布局及多态实现的探索(六)’ »