收集的一些知识点

来源:互联网 发布:未来的中国是一个正知 编辑:程序博客网 时间:2024/05/24 02:13

一、虚函数

如果A类中的print()函数声明为虚函数,那么如果B类继承了A类,则B类自己定义的print()也自动变为虚函数。
虚函数作用:指向基类的指针在操作它的多态类对象时,会根据不同的类对象,调用其相应的函数。
二、随机数
srand((unsigned)time(NULL));  //需要使用time(这样每个参数不同),产生不同的随机种子int h = rand(),a=1,b=10;   //产生随机种子cout << h << endl;int j = (rand() % (b - a)) + a;   cout << j << endl;
要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a; 
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;

要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)

三、获取系统时间

time_t tt = time(NULL);//获取当前时间戳
tm* a = new tm();
localtime_s(a, &tt);
printf("%d-%02d-%02d %02d:%02d:%02d\n",
a->tm_year + 1900,
a->tm_mon + 1,
a->tm_mday,
a->tm_hour,
a->tm_min,
a->tm_sec);

四、进制

0x表示十六进制前缀,好让别人知道是十六进制。

0x1000000:为十六进制1000000,转换为十进制为16777216

五、库

Windows:.dll动态库  .lib静态库  linux: .so动态库  .a静态库

六、assert(a);

assert(a);断言,如果a为0,则程序终止并报错。

七、预处理

#define  定义预处理    #define PI 3.1415925   数字部分相当于字符串

#undef   取消预处理

通常我们说C++的Build(这里没用“编译”是怕混淆)可分为4个步骤:预处理、编译、汇编、链接。
预处理就是本文要详细说的宏替换、头文件包含等;
编译是指对预处理后的代码进行语法和语义分析,最终得到汇编代码或接近汇编的其他中间代码;
汇编是指将上一步得到的汇编或中间代码转换为目标机器的二进制指令,一般是每个源文件生成一个二进制文件(VS是.obj,GCC是.o);
链接是对上一步得到的多个二进制文件“链接”成可执行文件或库文件等。

八、gdb调试 -g参数

要想使用 gdb l  需要 g++ -g 1.cpp -o 1.out

九、tinyxml 新的使用

f->Attribute("Type", &i);   //将type的属性值赋给变量i

十、vs操作

ctrl g 进入指定行号

原创粉丝点击