摘要:顾名思义,就是在某种方式上表现得象一个函数的对象。典型地,它是指一个类的实例,这个类定义了应用操作符operator()。 函数对象是比函数更加通用的概念,因为函数对象可以定义跨越多次调用的可持久的部分(类似静态局部变量),同时又能够从对象的外面进行初始化和检查(和静态局部变量不同)。例如:class sum { int val; public:sum(int i) :val(i) { }oper......
摘要:redhat linux上面没有提供anjuta软件包,上面提供了一个glade应用程序界面设计工具。linux上面使用anjuta和glade以及glademm软件包可以搭建一个linux下面进行c/c++软件开发的ide环境,可以进行gtk+/gnome的应用程序开发。
以前开发 linux 程序时写出好的图形化用户界面比较难。在 gimp 工具包 (gtk)诞生之后,这件事就变得比较容易......
C++对象布局及多态实现探索之内存布局普通类对象的内存布局struct c000 【程序编程相关:
QFP】首先我们从普通类对象的内存布局开始.c000为一个空类,定义如下: 【推荐阅读:
TSOPII】运行如下代码打印它的大小及对象中的内容. 【扩展信息:
利用脚本封装实现网站悬浮广告】{}; print_size_detail(c000) 结果为:the size of c000 is 1the detail of c000 is cc 可以看到它的大小为1字节,这是一个占位符.我们可以看到它的值是0xcc.在debug模式下,这表示是由编译器插入的调试代码所初始化的内存.在release模式下可能是个随机值,我测试时值为0x00.定义两个类,c010与c011如下:struct c010{ c010() : c_(0x01) {} void foo() { c_ = 0x02; } char c_;};struct c011{ c011() : c1_(0x02), c2_(0x03) {} char c1_; char c2_;}; 运行如下代码打印它们的大小及对象中的内容.print_size_detail(c010)print_size_detail(c012) 结果为:the size of c010 is 1the detail of c010 is 01the size of c011 is 2the detail of c011 is 02 03 我们从对象的内存输出中可以看到,它们的值就是我们在构造函数中赋的值,c010为0x01,c011为0x0203.大小分别为1.2.定义c012类....
下一页 摘要:在c++中,以类、虚函数等为代表的数据抽象功能一直是c++的核心和难点。我认为c++的抽象应该是指:从我们需要解决的问题出发,在与该问题相关的一组关联对象中提取出主要的或共有的部分――说简单一点,就是用相同的行为来操作不同的对象。
从提出问题到找出与该问题相关的对象,这是一个互动的、反复的过程。在对相关对象的抽象中,随着认识的深入,我们可能会修改最初的目标,而最初目标的修改又可能使一组新的相关对......