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