摘要:
#includeusingnamespace std;classSmallInt{public:/** * implicit constructor * 实现int类型转换为SamllInt类型 */SmallInt(constint val): value(val){ cout <<"SmallI... 阅读全文
摘要:
#includeusingnamespace std;classBase1{public:Base1()=default;Base1(const string & str){ strValue = str;} string strValue;};classBase2{public:Base2()=d... 阅读全文
摘要:
继承关系中,父类无默认构造函数类类型类成员变量无默认构造函数const类型成员变量引用类型成员变量不使用初始化列表,在创建对象调用构造函数之前会对所有的成员变量进行默认初始化,然后再执行构造函数体里的内容,这样做的话对于没有默认构造函数和变量在声明时便需要被赋值的类型是不适用的。初始化列表属于函数声... 阅读全文
摘要:
CC++的typeid注意:typeid是操作符,不是函数!)运行时获知变量类型名称,可以使用 typeid(变量).name(),需要注意不是所有编译器都输出"int"、"float"等之类的名称,对于这类的编译器可以这样使用:float f = 1.1f; if( typeid(f) == ty... 阅读全文
摘要:
#includeusingnamespace std;templatestructFactorial{enum{value = n *Factorial::value};};templatestructFactorial{enum{value =1};};int main(){ cout ::val... 阅读全文
摘要:
tail recursion, 顾名思议,就是将递归放到函数的尾部,说到它的不一样,就得先说说一般的递归。对于一般的递归,比如下面的求阶乘,教科书上会告诉我们,如果这个函数调用的深度太深,很容易会有爆栈的危险。intFactorial(int n){if(n out.sg++-O2 -g -Wa,... 阅读全文
摘要:
gcc & g++现在是gnu中最主要和最流行的c & c++编译器 。g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接。下面来讲解g++命令的使用,测试代码:#in... 阅读全文
摘要:
GCC输出带C源代码的汇编文件,一共有两种方式(同样也适合G++输出呆CPP源代码的汇编文件)。测试代码(hello.cpp)#includeusingnamespace std;intFactorialTail(int n,int sum){if(n hello_objdump.s生成含有调试信... 阅读全文
摘要:
1、键盘组合键操作ctrl-c 发送 SIGINT 信号给前台进程组中的所有进程。常用于终止正在运行的程序。ctrl-z 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程。ctrl-d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。ctrl-/ 发送 SIGQUIT ... 阅读全文