摘要:
注意:在函数返回值前加const的目的是为了使其返回值不为左值。比如假设a*b=c是合法的,但无意义,我们需要杜绝这种情况,于是我们可以将*操作符重载为返回值加const的函数。 阅读全文
摘要:
/* * main.cpp * * Created on: 2016年8月29日 * Author: godsome */ #include #include #include using namespace std; int next[100]; int Index_KMP(char s[], char t[]){ ... 阅读全文
摘要:
const int MINNUMBER = -32767; int find_sec_max(int data[], int count){ int maxnumber = data[0]; int sec_max = MINNUMBER; for (int i = 1; i maxnumber){ sec_max = maxnumber; ... 阅读全文
摘要:
结果: 构造B(5) 析构B(5) 析构形参t1 析构t2 析构t1 阅读全文
摘要:
结点: 阅读全文
摘要:
#include #include using namespace std; void Order(vector &data){ int count = data.size(); int tag = false; for(int i = 0; i data[j+1]){ tag = true; int... 阅读全文
摘要:
调用_onexit(func)函数可以在main之后执行func()。 阅读全文
摘要:
// __FILE__与__LINE__是系统预定义宏,由编译器定义的 cout << __FILE__; cout << __LINE__; 阅读全文
摘要:
重载: ⑴同一个类中 ⑵函数名相同 ⑶参数不同 ⑷virtual关键字可有可无 覆盖: ⑴分别位于派生类与基类中 ⑵函数名字相同 ⑶参数相同 ⑷基类函数必须有virtual关键字 隐藏: ⑴如果派生类的函数与基类的函数同名,但参数不同,无论有无virtual关键字,基类的函数将被隐藏 ⑵如果派生类的 阅读全文
摘要:
修改内容的差别: char a[] = "hello"; a[0] = 'x'; char *p = "world"; //指向常量字符串 p[0] = 'x'; //编译无错,运行出错 sizeof运算符能计算数组容量,而sizeof(pointer)得到的是指针变量的字节数而非pointer所指 阅读全文
摘要:
//bool if(!a) if(a) //int if(a == 0) //float const EXP = 0.000001; if(a -EXP) //pointer if(a != NULL) if(a == NULL) 阅读全文
摘要:
如下表示合法: 阅读全文
摘要:
通用寄存器给出的地址是段内偏移地址,相应的段寄存器地址*10H+通用寄存器内地址,便是实际访问地址。 阅读全文
摘要:
当一个类A中没有任何成员变量与成员函数,这时sizeof(A)的值是多少? 答:不是0,如果是0,声明一个class A[10],而每个对象占用空间为0,这时没办法区分A[0],A[1]……。 注意:sizeof是编译时运算符,编译时就确定了,所以类似int id[sizeof(unsigned l 阅读全文
摘要:
struct默认成员公有,class默认成员私有,其余功能相当。 阅读全文
摘要:
从静态存储区域分配,如全局变量,static变量。 在栈上创建,如函数执行时,函数内局部变量的存储单元都可以在栈止创建,函数执行结束时释放,栈内存分配运算内置于处理器的指令集。 从堆上分配,如malloc和new,free和delete,动态内存的生存期由程序员决定。 阅读全文
摘要:
全局对象的构造函数会在main函数之前执行。 阅读全文
摘要:
两个不同类型的指针间可以使用强制转换,如reinterpret cast,C#是类型安全的。 阅读全文
摘要:
当类中含有const、reference成员变量,基类的构造函数需要使用初始化表。 阅读全文
摘要:
最终结果是i = 5 * 5 + 5 = 30 宏定义相当于是直接进行代码替换,如果要实现先加倍的操作应将DOUBLE(5)用括号括起来。 const与#define的区别: 阅读全文