C/C++
holdoner
极端理性与极端感性的综合体
展开
-
MFC 程序入口和执行流程
一 MFC程序执行过程剖析1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用程序的窗口函数。而在MFC程序当中我们不在能找到类似WinMain这样的程序入口,取而代之的是一系列派生类的声明和定义以及一个冲CWinApp类派生而来的类的全局对象。CWinApp类被称之为应用程转载 2013-03-29 09:32:13 · 651 阅读 · 0 评论 -
C语言学习路线
初级阶段基本语法控制台编程中级阶段Win32 API编程图形OpenGL高级阶段各种OS(linux)下系统编程终极阶段对C语言的编译过程和编译器终极理解内存分配,变量存放等原创 2013-05-17 18:54:57 · 886 阅读 · 0 评论 -
java与c++的语法对比
类的声明格式:java类的声明有访问权限修饰符,C++没有;类的成员的声明:声明格式有区别,但C++没有默认访问权限,没有显示声明访问权限的时候,成员是 private,结构体默认是public;类的继承方式:java没有类的继承方式的修饰,C++有类的继承的修饰符[public protected private]对象的声明与定义:java的对象的声明只是定义了一个引用变量,java原创 2013-05-27 10:31:15 · 1032 阅读 · 0 评论 -
C++中public,protected,private访问
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由转载 2013-05-27 10:21:17 · 817 阅读 · 0 评论 -
Qt继承QAbstractItemModel实现自定义结构的关键问题记录
问题一:对根节点的处理思路。树根的处理方式是非常重要的概念。问题二:一个节点下子节点行值,尤其是列值的处理思路。原创 2013-05-27 22:19:45 · 2073 阅读 · 0 评论 -
C++const用法总结
一、关于一般常量声明或定义的格式如下:const = ; [1] const = ; [2][1]和[2]的定义是完全等价的。例如:整形int(或其他内置类型:float,double,char)const int bufSize = 512; 或者int const bufSize = 512;因为常量在定义后就不能被修改,所以定义时必须初始化。转载 2013-05-28 15:12:01 · 589 阅读 · 0 评论 -
C语言 符号优先级表
优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .成员选择(对象)对象.成员名转载 2013-05-28 14:20:27 · 977 阅读 · 0 评论 -
C++中的函数重载
本文从语法角度来探讨C++函数重载一般性的来讲函数的重载就是 参数列表(类型,顺序, 个数) 决定。即参数列表不同但是名称相同的函数可视为不同的函数,返回值的区别不能作为重载的要素。那么为什么还要针对C++来具体探讨呢,以为C++里面有意个特殊的关键字——const .在C++中const可能会成为函数重载的一个依据(我就因为忽视这一点而被一个问题坑得够苦的!)。请看下面的代码:c原创 2013-05-28 15:07:28 · 766 阅读 · 0 评论 -
Qt自定义信号槽
//signal_slot.h#ifndef SIGNAL_SLOT_H#define SIGNAL_SLOT_H#include #include "ui_signal_slot.h"class signal_slot : public QMainWindow{ Q_OBJECTpublic: signal_slot(QWidget *parent原创 2013-05-29 08:45:19 · 806 阅读 · 0 评论 -
C++标准库函数
c++程序通常可以调用标准c++库中的大量函数。这些函数完成一些基本的服务,如输入和输出等,同时也为一些经常使用的操作提供了高效的实现代码。这些函数中含有大量的函数和类定义,以帮助程序员更好地使用标准c++库。标准c++库包含以下内容:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,和标准c++库的详细消息均在其对应的头文件进行了说明转载 2013-05-16 10:48:44 · 902 阅读 · 0 评论 -
Qt中QTreeView 与 QModel 建立联系
通过connect()把QTreeView 与对应的Model联系起来,在此之前必须先使用QTreeView的setModel()设置模式。下面的代码达不到要求的效果:connect(model,SIGNAL(reset()),treeView,SLOT(expandAll()));treeView->setModel(model);正确的做法是:treeView-原创 2013-05-28 22:50:48 · 2209 阅读 · 0 评论 -
vs2010中moc文件生成方法(含有截图)
Qt 程序在交由标准编译器编译之前,先要使用 moc 分析C++ 源文件。如果它发现在一个头文件中包含了宏 Q_OBJECT,则会生成另外一个 C++ 源文件。这个源文件中包含了Q_OBJECT 宏的实现代码。这个新的文件名字将会是原文件名前面加上 moc_构成。这个新的文件同样将进入编译系统,最终被链接到二进制代码中去。因此我们可以知道,这个新的文件不是“替换”掉旧的文件,而是与原文件一起参与编原创 2013-05-02 10:03:03 · 3402 阅读 · 0 评论 -
explicit构造函数
按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但是有转载 2013-06-11 15:54:03 · 644 阅读 · 0 评论 -
C++中虚函数
虚函数联系到多态,多态联系到继承。所以本文中都是在继承层次上做文章。没了继承,什么都没得谈。下面是对C++的虚函数这玩意儿的理解。一, 什么是虚函数(如果不知道虚函数为何物,但有急切的想知道,那你就应该从这里开始)简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。虚函数的作用,用专业术语来解释就是实现多态性(Polymorphism),多态性是将接口与实现进行分离;用形转载 2013-06-13 14:22:47 · 597 阅读 · 0 评论 -
C++中的std
C++中的std原创 2013-06-15 17:08:13 · 1030 阅读 · 0 评论 -
vs2010下的moc_XXXX.cpp文件
在Qt的vs2010下会自动生成moc_XXXX.cpp文件, 这是怎样的一种机制呢?原创 2013-05-02 09:28:51 · 1635 阅读 · 0 评论 -
C/C++中的 error LNKxxxx: unresolved external symbol "xxxxx"
一般这种错误的原因是没有把相应的库文件(即lib文件)链接到工程里面,具体的错误提示如下filename.obj: error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall functionname(argument)"其中filename就是obj文件名.这段话的意思,就是说原创 2013-04-30 10:57:38 · 2434 阅读 · 0 评论 -
LGPL与闭源程序
最近一直在学习 Qt。Qt 有两个许可证:LGPL 和商业协议。这两个协议在现在的 Qt 版本中的代码是完全一致的(潜在含义是,Qt 的早期版本,商业版的 Qt 通常包含有一些开源版本所没有的库,比如 QtSingleApplication 这个库)。所以现在对于普通开发人员和部分商业公司来说,使用 LGPL 版本的 Qt 可以节省很大的开销。这两个版本最大的区别在于,前者是免费的,后者是收费的。转载 2013-04-21 08:12:11 · 906 阅读 · 0 评论 -
C++ 中的cin,cout 为什么不需要类型说明
C语言中的printf()和scanf()函数的操作十分严格,必须指明相应的变量和数据的类型。但是C++里面的cin和cout却无须说明。这是因为他们能够从数据的书写格式上识别出他们的类型:cin>>V;V:只能是变量。输入的数据制动转化为变量的类型,然后储存在变量中。这样不会像C中的printf()中有点多此一举的味道。 coutV:可以是变量,常量。常量包括数字,字符串,字原创 2013-04-02 18:39:45 · 2241 阅读 · 1 评论 -
tibco 记录
cygdrive命令:tibrvlisten.exe -service 90 -network "192.168.0.0;224.1.1.1" "abc.def.>"tibrvsend.exe -service 90 -network "192.168.0.0;224.1.1.1" "abc.def.gh" "message"源文件:C:\TIBCO\TIBR原创 2013-04-03 16:51:57 · 1761 阅读 · 0 评论 -
qmake 之 CONFIG 与 QT 乱谈
看qtcn论坛中经常有人忘记 QT+=network 等语句。随便写写吧,或许对他人有帮助。写来写去,发现越写越乱,就这样吧,反正主要的内容很简单。 dbzhang800 20101116从哪儿开始呢?不妨先看个例子吧:#include #include int main(int argc, char** argv){QCoreApplication app(arg转载 2013-04-04 09:47:44 · 913 阅读 · 0 评论 -
QT中的explicit关键字的作用
c++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。一是个构造器,二是个默认且隐含的类型转换操作符。 所以,有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类型正转载 2013-04-04 18:38:04 · 1370 阅读 · 0 评论 -
setupUI(this)是什么意思?什么用??
setupUi(this)是由.ui文件生成的类的构造函数,这个函数的作用是对界面进行初始化,它按照我们在Qt设计器里设计的样子把窗体画出来,把我们在Qt设计器里面定义的信号和槽建立起来。也可以说,setupUi 是我们画界面和写程序之间的桥梁。 转自:http://zhidao.baidu.com/question/101843815.html转载 2013-04-04 19:13:41 · 2621 阅读 · 1 评论 -
TIBCO之tibrvsned.cpp
#include#include#include#include"tibrv/tibrvcpp.h"#define MIN_PARAMS (3)#define FIELD_NAME "DATA"char* serviceStr =NULL;char* networkStr=NULL;char* daemonStr=NULL;void usage原创 2013-04-05 17:03:30 · 2693 阅读 · 3 评论 -
(一) Qt Model/View 的简单说明
(一)使用Qt Model/View的好处 1、利用 Qt 的模型 / 视图架构,我们可以只从模型中获取实际在视图中显示所需要的数据。这样在处理非常大的数据集的时候,可以更加快速,而不至于降低性能。通过把一个模型注册到两个或多个视图,就可以让用户使用不同的方式查看数据以及和数据交互。 Qt 对于多个视图会自动保持同步,从而使对一个视图的改变会影响到全部视图。转载 2013-04-06 16:09:12 · 833 阅读 · 0 评论 -
extern“c”
extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。(1) 被extern 限定的函数或变量是extern类型的:a. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要转载 2013-04-10 12:04:55 · 639 阅读 · 0 评论 -
Qt 信号槽总结
Qt原创 2013-04-15 12:34:22 · 709 阅读 · 0 评论 -
Qt学习笔记
qmake: 自动生成Makefile、Microsoft Visual Studio 专案文件 和 xcode 专案文件。===========================make命令: $ make -f Makefile.debug根据makefile文件对整个工程自动重新编译===========================makefile文件解析Makefil原创 2013-04-04 07:48:02 · 762 阅读 · 0 评论 -
c语言中.c和.h文件的困惑
本质上没有任何区别。 只不过一般: 而且是什么后缀也没有关系,只不过编译器会默认对某些后缀的文件采取某些动作。你可以强制编译器把任何后缀的文件都当作c文件来编。这样分开写成两个文件是一个良好的编程风格。.h文件是头文件,内含函数声明、宏定义、结构体定义等内容.c文件是程序文件,内含函数实现,变量定义等内容。而且,比方说 我在aaa.h里定义了一个函数的声明,然后我在aaa.转载 2013-04-08 16:23:00 · 1394 阅读 · 2 评论 -
找到一个或多个多重定义的符号”产生的原因
今天哥又碰到了这种问题,所以必须的总结一下:这种错误往往是因为在.h文件里面进行了变量的声明,而一旦这个.h文件被多个.c文件调用的时候就会出现这种错误。所以最好不要在.h文件中进行变量的声明,但是类型的定义却最好在.h文件中进行,因为变量类型不会出现这种问题。有一个概念要搞清楚:变量(对象)的声明与类型(结构体或类)的定义是不同的概念! 如果你有一个变量需要在其他.c文件中使用,原创 2013-04-07 14:01:19 · 1252 阅读 · 0 评论 -
使用预定义模型 QStringListModel例子
使用预定义模型 QStringListModel例子 源代码如下Main.cpp Cpp代码 #include #include "teamleadersdialog.h" int main(int argc, char *argv[]) { QApplication app(argc,转载 2013-04-06 16:10:25 · 1012 阅读 · 0 评论 -
Makefile语法规则
让我们先来粗略地看一看Makefile的规则。 target ... : prerequisites ... command ... ... 目标:依赖执行指令 ...target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)。 ① prerequisites就是,要生成那个target所需要的文件或是目标。转载 2013-04-04 07:52:18 · 910 阅读 · 0 评论 -
Qt中消息信号与事件的总结
Qt中消息信号与事件的总结原创 2013-06-13 12:53:48 · 1037 阅读 · 0 评论