- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Qt核心剖析: moc
<br />Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”。这里我们从Qt新增加的关键字就可以看出来:signals、slots 或者 emit。所以有人会觉得 Qt 的程序编译速度慢,这主要是因为在 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。<br />moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源
2011-03-16 10:51:00 499
原创 Qt核心剖析: moc
<br />Qt 不是使用的“标准的” C++ 语言,而是对其进行了一定程度的“扩展”。这里我们从Qt新增加的关键字就可以看出来:signals、slots 或者 emit。所以有人会觉得 Qt 的程序编译速度慢,这主要是因为在 Qt 将源代码交给标准 C++ 编译器,如 gcc 之前,需要事先将这些扩展的语法去除掉。完成这一操作的就是 moc。<br />moc 全称是 Meta-Object Compiler,也就是“元对象编译器”。Qt 程序在交由标准编译器编译之前,先要使用 moc 分析 C++ 源
2011-03-16 10:51:00 418
原创 Qt编程的禁忌和限制 – moc应该这样用
<br />这个题目乍一听起来有股冷飕飕的味道, 呵呵, 别想歪了, 纯粹和封建迷信无关哦。 笔者也是无意中发现在Qt的文档里有一篇关于moc工具的limitation的文章,里头的东西让笔者还挺惊讶的, 撰文以memo。 <br />起因是qt群里有人问一个链接的错误, 程序结构很简单, 就是designer设计主界面,在代码里用多重继承方式使用, 奇怪的错误信息如下: <br />moc_mainwin.cpp:39: error: ‘staticMetaObject’ is not a member
2011-03-16 10:40:00 750
原创 编码规范之头文件
<br /> <br />通常,一个.cc文件都会有一个关联的.h文件。有一些例外情况,比如一个单位和小的.cc文件仅包含一个main()函数。正确的使用头文件能够让可读性,代码大小和代码表现都有很大不同。<br /> <br />下面的规则将指导你通过在使用头文件中容易犯得各种错误。<br /> <br />一.#define控制<br />所有头文件都要有#define控制来组织多重包含。格式必须务必是:<br /><PROJECT>_<PATH>_<FILE>_H_<br />为了保证唯一性,他们必须
2011-03-10 17:06:00 899
原创 C/C++/C#面试题精选(2)
<br />题目(六):运行下列C++代码,输出什么?<br />struct Point3D<br />{<br /> int x;<br /> int y;<br /> int z;<br />};<br /> <br />int _tmain(int argc, _TCHAR* argv[])<br />{<br /> Point3D* pPoint = NULL;<br /> int offset = (int)(&(pPoint
2011-03-09 16:00:00 459
原创 C/C++/C#面试题精选(1)
<br />题目(一):C++中我们可以用static修饰一个类的成员函数,也可以用const修饰类的成员函数(写在函数的最后表示不能修改成员变量,不是指写在前面表示返回值为常量)。请问:能不能同时用static和const修饰类的成员函数?<br />分析:答案是不可以。C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在函数中添加一个隐式的参数const this*。但当一个成员为static的时候,该函数是没有this指针的。也就是说此时static的用法和stati
2011-03-09 15:59:00 466
原创 C/C++/C#面试题精选(4)
<br />问题(16):运行如下的C++代码,输出是什么?<br />class A<br />{<br />public:<br /> virtual void Fun(int number = 10)<br /> {<br /> std::cout << "A::Fun with number " << number;<br /> }<br />};<br /> <br />class B: public A<br />{<br />public:<br /> v
2011-03-09 15:58:00 402
原创 C/C++/C#面试题精选(3)
<br />题目(11):运行下图中的C#代码,输出是什么?<br />namespace StringValueOrReference<br />{<br /> class Program<br /> {<br /> internal static void ValueOrReference(Type type)<br /> {<br /> String result = "The type " + type.Name;<br /> <br /
2011-03-09 14:19:00 477 1
原创 内存对齐(摘自百度百科)
<br />内存对齐介绍: 在最近的项目中,我们涉及到了“内存对齐”技术。对于大部分程序员来说,“内存对齐”对他们来说都应该是“透明的”。“内存对齐”应该是编译器的“管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“内存对齐”。如果你想了解更加底层的秘密,“内存对齐”对你就不应该再透明了。 <br /> 一、内存对齐的原因 内存对齐(3张)<br /> 大部分的参考资料都是如是说的: <br /> 1、平台原因(移植原因):不是所有
2011-03-04 10:38:00 509
原创 结构体内存布局
<br />网上看到的一篇介绍结构体大小,布局的好文章,转载一下:<br />为表示对原文敬意,原文连接如下:<br />http://www.ksarea.com/articles/20071004_sizeof-struct-memory.html<br />http://xianpinglin.blog.sohu.com/119230393.html<br /> <br />有的时候,在脑海中停顿了很久的“显而易见”的东西,其实根本上就是错误的。就拿下面的问题来看:struct T<br />{<br
2011-03-04 10:37:00 1124
原创 结构体的内存对齐方式(结构体大小计算 sizeof)(
<br />网上看到的一篇介绍结构体大小,布局的好文章,转载一下:<br />为表示对原文敬意,原文连接如下:<br />http://www.ksarea.com/articles/20071004_sizeof-struct-memory.html<br />http://xianpinglin.blog.sohu.com/119230393.html<br /> <br />有的时候,在脑海中停顿了很久的“显而易见”的东西,其实根本上就是错误的。就拿下面的问题来看:struct T<br />{<br
2011-03-04 10:15:00 515
原创 C++中类的内存结构解析
<br />介绍 <br /> 在本系列的教程中,我要讨论一些ATL的内部工作方式以及它所使用的技术。<br /> 在讨论的开始,让我们先看看一个程序的内存分布。首先,编写一个简单的程序,它没有任何的数据成员,你可以看看它的内存结构。<br />程序1.#include <iostream> using namespace std; class Class { }; int main() { Class objClass; cout << "Size of object
2011-03-03 17:14:00 523
原创 C和C++中使用结构体的一点区别
<br />从学校毕业以后,开发东西几乎全部是c++,今天在Linux用c编程,发现关于结构体在定义和使用的上的一点区别。至于结构体在c++有类的特性,这里不做赘述,感兴趣的朋友可以自己查看c++ primer的相关章节。<br />以前在c++中定义和使用结构体如下:<br />// definition<br />typedef struct Student_t<br />{<br /> int num;<br /> char name[128];<br />}Student, *PStudent;
2011-03-03 10:13:00 825
原创 真相大白——中国楼市恶涨的原因
前言:中国楼市的实情---房子是用来炒的,不是用来住的;商品房是卖给银行的,不是卖给老百姓的。 银行和开发商配合默契,齐心协力把房子炒成了天价,一起掏空了老百姓的腰包!!! 请看现代寓言故事—— 现在买房子傻子才掏钱----手把手教你买房不花钱 昨晚,和一个开典当行的同学喝酒。 我问同学,“你买了多少套房子,多少间铺面?”“房子22套,铺面12间。”同学炫耀似的答道。“那你花
2010-04-01 09:45:00 1512
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人