
C++
nanhaizhixin
这个作者很懒,什么都没留下…
展开
-
自已封装的线性表(是线性存储)
linear_list.h#pragma oncetemplateclass linear_list{ private: T_data data; T_data *elem; int length; int listsize; const int LIST_INIT_SIZE; const int LISTINCREMENT; public: // linear_list(); linear_list(int a,int b);原创 2011-03-13 11:24:00 · 716 阅读 · 0 评论 -
C++重载,重写
1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 d 基类函数必须有virtual关键字3 重原创 2014-12-11 18:10:42 · 502 阅读 · 0 评论 -
非递归前中后序遍历(多种方式)
#include #include using namespace std;struct Node{ Node* lchild; Node* rchild; char value;};class list{public: list::list(); void PreOrder(); void InOrder(); void PostOrder(); void Pos转载 2014-04-04 09:58:10 · 674 阅读 · 0 评论 -
(++a)+=(a++)和(++a)=(++a)+(a++)的区别
#include using namespace std;void main(){ int a=4; cout<<((++a)+=(a++))<<endl; //结果为10 cout<<a<<endl; //结果为11 system("pause");}#include using namespace std;void main(){转载 2014-04-04 09:52:58 · 963 阅读 · 0 评论 -
PCI配置空间简介
PCI配置空间简介 作者:敏行PCI有三个相互独立的物理地址空间:设备存储器地址空间、I/O地址空间和配置空间。配置空间是PCI所特有的一个物理空间。由于PCI支持设备即插即用,所以PCI设备不占用固定的内存地址空间或I/O地址空间,而是由操作系统决定其映射的基址。系统加电时,BIOS检测PCI总线,确定所有连接在PCI总线上的设备以及它们的配置要求,并进行系统配置。所以,所有的PCI设备转载 2013-04-10 16:08:11 · 2618 阅读 · 0 评论 -
C++类模版特化
说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多。我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型; 二是特化为引用,指针类型;三是特化为另外一个类模板。这里用一个简单的例子来说明这三种情况:// general versiontemplateclass T>class Compare{pub转载 2012-10-18 15:54:29 · 499 阅读 · 0 评论 -
C++不常用关键字(__leave)
C++不常用关键字(__leave) 总结__finally块被执行的流程时,无外乎三种情况。第一种就是顺序执行到__finally块区域内的代码,这种情况很简单,容易理解;第二种就是goto语句或return语句引发的程序控制流离开当前__try块作用域时,系统自动完成对__finally块代码的调用;第三种就是由于在__try块中出现异常时,导致程序控制流离转载 2012-07-30 14:20:32 · 6783 阅读 · 0 评论 -
获取IE历史记录
#include#include#include//IUrlHistoryStg2#include//CLSID_CUrlHistory,SHAddToRecentDocs#include//USES_CONVERSION;void GetIEHistory(){ USES_CONVERSION;//Unicode转Ansi用 CoInitialize(NULL);//初始化转载 2012-07-30 13:16:09 · 2095 阅读 · 0 评论 -
inline内联函数(声明前加inline还是定义前加inline)
(一)inline函数(摘自C++ Primer的第三版)在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline 函数对编译器而言必须是可见的,以便它能够在调用点内展开该函数。与非inline函数不同的是,inline函数必须在调用转载 2012-05-14 10:51:38 · 12294 阅读 · 1 评论 -
C++字符换行
在C/C++语言中,可能我们要书写的一个字符串太长了,放在一行上影响代码的可读性。这时我们就需要多行书写了。 字符串多行书写有两种规则: 1. 在字符串换行处加一个反斜杠’\’,下一行前不能有空格或者Tab键;2. 使用双引号。 程序示例: /* * Introduction: * 测试C++中的字符串多行书写规则 */ #include #include转载 2012-05-11 13:57:36 · 6861 阅读 · 0 评论 -
腾讯2012实习生笔试题其中一题
在如下8*6的矩阵中,请计算从A移动到B一共有多少种走法?要求每次只能向上挥着向右移动一格,并且不能经过P;BP原创 2012-05-11 14:06:04 · 2220 阅读 · 4 评论 -
取CPU信息
总共有两种方式,原理都是一样,只是一种没整合,一种整合成函数了. 第一种没整合过的:int _tmain(int argc, _TCHAR* argv[]){ char buf[256]; int a, b, c, d; _asm { mov eax, 80000002h cpuid mov a, eax mov b, ebx mov c, e原创 2012-05-09 22:09:03 · 593 阅读 · 0 评论 -
在程序崩溃明产生DUMP
// 处理Unhandled Exception的回调函数//// 一个有函数调用的类// class CrashTest{public: void Test() { Crash(); }private: void Crash() { // 除零,人为的使程序崩溃 // int i = 13; int j原创 2012-05-09 22:10:22 · 1770 阅读 · 0 评论 -
_countof() 宏引申出来的语法知识
在stdlib.h里有一个宏_countof,如下:extern "C++"{template char (*__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];#define _countof(_Array) sizeof(*__countof_helper(_Ar转载 2012-03-06 16:50:29 · 1281 阅读 · 0 评论 -
构造函数被explicit修饰
类的构造函数被explicit修饰可以阻止类的对象进行隐式转换,但仍然可以显示转换.class B{public: explicit B(int a = 10,bool c = true) { }};void dosomething(B b){}int main(int *argc , char **argv) { B object1;原创 2012-01-28 21:32:22 · 647 阅读 · 0 评论 -
十六进制转十进
int CtextcreatefileDlg::HexStrToint(const CString &m_HexStr){ int len=m_HexStr.GetLength(),result=0; char ch; for(int i=0;i<len;i++)原创 2011-08-17 17:47:53 · 905 阅读 · 0 评论 -
C中如何调用C++函数?
<br /> <br />前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。<br /> <br />将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:<br />// C++ code:<br />extern "C" void f(int);转载 2011-04-27 21:35:00 · 606 阅读 · 0 评论 -
c/c++ 里面的变长参数的实现
c里面的变长参数,c++里面也有。提供了:一个类型 va_list3个宏 va_start va_arg va_end使用的例子是这样的int foo(char* fmt, ...){ va_list args; va_start(args, fmt); int i = va_arg(args, int); doub转载 2011-06-11 21:08:00 · 2622 阅读 · 0 评论 -
二进制值和十六进制字符串相互转换的C++代码
#include #include #include using namespace std;string BinToHex(const string &strBin, bool bIsUpper = false){ string strHex; strHex.resize(strBin.size() * 2); for (size_t i = 0; i <原创 2015-09-15 12:34:34 · 10600 阅读 · 1 评论