现在位置: 首页 > c++
    C++是一个恶草丛生的地带,虚拟机制是很重要,但是很危险的一个C++特性,所以有必要对此作一下阐述,希望能对大家有所帮助。 什么是虚函数     简单地说,就是在成员函数前加关键字virtual,这样这个成员函数就变成了虚函数。虚函数的思想是从Simula借来得,在C++里面算得上最显著的特征。      虚函数允许派生类取代基类所提供的实现。编译器确保当对象为派生类时,派...
阅读全文
2012-08-17 11:28 工业·编程 ⁄ 共 955字 暂无评论
    虚函数里面有一个很特殊的东东,那就是纯虚函数,关于纯虚函数的问题也是新人们常见的话题,这里我想对此作一个小小的论述,希望能给初学者一个满意的解释。 一、引入原因    1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。    2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常...
阅读全文
2012-08-17 10:40 工业·编程 ⁄ 共 2829字 暂无评论
说到宏,恐怕大家都能说出点东西来:一种预处理,没有分号(真的吗?)。然后呢? 嗯.......茫然中...... 好吧,我们就从这开始说起。 最常见的宏恐怕是#include了,其次就是#define还有....... 还是从宏的用途分类吧: 1、#include 主要用于包含引用文件,至今其地位无人能替代; 2、注释掉代码。例如:    #if 0    .......    #endif;    这种机制是目前注释...
阅读全文
2012-08-17 10:39 工业·编程 ⁄ 共 9854字 暂无评论
1、什么是const?    常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用?    (1)可以定义const常量,具有不可变性。         例如:   ...
阅读全文
2012-08-17 10:36 工业·编程 ⁄ 共 1743字 暂无评论
    语言的发展是一个逐步地进的过程,C++是直接从C语言发展过来的,而C语言是从B语言发展过来的,B语言是BCPL的一个解释性后代,BCPL是Basic CPL。其中最有趣的是CPL中C的由来,由于当时这个语言是剑桥大学和伦敦大学合作开发的,在伦敦的人员加入之前,C表示剑桥,伦敦人员加入之后,C表示Combined组合。还有一种非正式的说法,C表示Christopher,因为Christopher是CPL背后的主要动力。     最...
阅读全文
    我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。 如: class Base { public:    Base(){} virtual ~Base(){} }; class Derived: public Base { public:    Derived(){}; ~Derived(){}; } void foo() {  ...
阅读全文
2012-08-15 23:46 工业·编程 ⁄ 共 424字 暂无评论
CString strPath = L"HARDWARE//DESCRIPTION//System//CentralProcessor//0";  //注册表子键路径 CRegKey regkey;  //定义注册表类对象 LONG lResult;    //LONG型变量-反应结果 lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表键 if (lResult!=ERROR_SUCCESS) {   AfxMessageBox(L"错误:无法查询有关的注册表...
阅读全文
CString strPath="HARDWARE//DESCRIPTION//System"; CRegKey regkey;//定义注册表类对象 LONG lResult;//LONG型变量-反应结果 //打开注册表键 lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); if (lResult!=ERROR_SUCCESS) { AfxMessageBox("错误:无法查询有关的注册表信息"); return; } char chVideoBiosDate[50]; DWORD dwSize=50; regkey.QueryValue((char*)chVid...
阅读全文
2012-08-15 23:44 工业·编程 ⁄ 共 688字 暂无评论
OSVERSIONINFO OSVersionInfo; OSVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&OSVersionInfo);  if (OSVersionInfo.dwPlatformId == VER_PLATFORM_WIN32_NT    && OSVersionInfo.dwMajorVersion == 5    && OSVersionInfo.dwMinorVersion == 0) {   //AfxMessageBox("Windows 2000 OS!");   cout << &...
阅读全文
2012-08-15 23:43 工业·编程 ⁄ 共 448字 暂无评论
CString strPath="HARDWARE//DESCRIPTION//System//CentralProcessor//0";//注册表子键路径 CRegKey regkey;//定义注册表类对象 LONG lResult;//LONG型变量-反应结果 lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表键 if (lResult!=ERROR_SUCCESS) {    AfxMessageBox("错误:无法查询有关的注册表信息");    return;...
阅读全文