现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-07-10 20:41 工业·编程 ⁄ 共 4802字 暂无评论
1.简介      虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次: class A { public:     virtual void foo() { cout << "A::foo() is called" << endl;} }; class B: public A { public:     virtual void foo() { cout << "B::foo() is ca...
阅读全文
2012-07-10 20:41 工业·编程 ⁄ 共 4789字 暂无评论
1.简介     虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次: class A { public:     virtual void foo() { cout << "A::foo() is called" << endl;} }; class B: public A { public:     virtual void foo() { cout << "B::foo() is c...
阅读全文
2012-07-10 06:55 工业·编程 ⁄ 共 1011字 评论 1 条
    高质量C++编程指南中指出当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针,这句话针对一维数组是正确的(目前个人认为是正确的),但是对于多维数组,这显然不完全正确。C语言之所以把数组形参当作指针是出于效率考虑,如果把一个数组全部拷贝这样势必带来性能上的损失。所以目前无论你在函数声明中像'void func1(char a[])'这样写,还是像'void func1(char *a)',编译器都会把它看成后者的形...
阅读全文
2012-07-10 06:53 工业·编程 ⁄ 共 600字 暂无评论
1. 直接调用 HINSTANCE hinst = NULL;//导入DLL得到的变量 //             返回值                      函数声明的名称           参数 typedef   BOOL   (CALLBACK ...
阅读全文
2012-07-10 06:47 工业·编程 ⁄ 共 2152字 暂无评论
    在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种: 第一种方法: 1.CMYClass::CSomeClass() 2.{ 3.x=0; 4.y=1; 5.} 第二种方法: 1.CSomeClass::CSomeClass() : x(0), y(1) 2.{ 3.} 本文将要探讨这两种方法的异同以及如何使用这两种方法。     从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始化列表,之所以...
阅读全文
    无模式对话框即Modeless Dialog。之所以称为无模式,是因为无模式对话框允许用户同时操作其他窗口,这样窗口就可以作为工具窗口在程序主要窗口之外提供额外的功能,分离了各个对话框的功能。最常见的是Windows操作系统层次的窗口,例如资源管理器,我的电脑,Word等。本文介绍的是更下一层次的窗口,例如Word的属性设置对话框。     无模式对话框的创建通过“三步曲”完成:new -> CreateWi...
阅读全文
2012-07-10 06:26 工业·编程 ⁄ 共 8964字 暂无评论
  本文将针对一个单文档来描述MFC的文档/视图结构,他直接打开MFC的源代码进行分析,在分析过程中去掉了无关的部分。所以第一步就是要创建一个称为First得工程,文档类型是单文档,下文将围绕这个工程来讲的。 第一章 找回WinMain函数 首先在VC的安装路径中找到WINMAIN.CPP文件,AfxWinMain函数就是VC编译器的入口,去掉一些不重要的东西后得到如下得程序。 int AFXAPI AfxWinMain (HINSTANCE hInstance, HINSTANCE hPre...
阅读全文
2012-07-10 06:21 工业·编程 ⁄ 共 4324字 暂无评论
    树形控件TreeCtrl和下节要讲的列表控件 ListCtrl在系统中大量被使用,例如Windows资源管理器就是一个典型的例子。树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。     MFC中使用CTreeCtrl类来封装树形控件的各种操作。通过调用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );...
阅读全文
2012-07-10 06:18 工业·编程 ⁄ 共 1818字 暂无评论
Q: 如何打开一个应用程序? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW ); 或 ShellExecute(this->m_hWnd,"open","notepad.exe", "c://MyLog.log","",SW_SHOW ); As you can see, I havent passed the full path of the programs. Q: 如何打开一个同系统程序相关连的文档? ShellExecute(this...
阅读全文
2012-07-09 21:48 工业·编程 ⁄ 共 1271字 暂无评论
1、管理方式不同:栈(stack)由编译器管理;堆(heap)由程序员管理。  2、空间大小不同:win32中,堆(heap)可达4G;VC中栈默认1M(可以修改)。  3、碎片问题:堆(heap)易产生;栈(stack)不会。  4、生长方向不同:堆(heap)生长方向是向上的,也就是向着内存增加的方向;栈(stack)相反。  5、分配方式不同:堆(heap)是动态的,没有静态的堆;栈(stack)有两种:动态和静态。  6、分配效率不同:栈(stack)...
阅读全文