C++学习日记5

1. #include <iomanip>

解析:io代表输入输出,manip是manipulator(操纵器)的缩写。它是I/O流控制头文件,就像C里面的格式化输出一样。

2. #define WIN32_LEAN_AND_MEAN

解析:包含<windows.h>时去除一些头文件的包含,加快编译速度。

3. #define NOMINMAX

解析:为了禁用Visual C++中的min/max宏定义,可以在包含<windows.h>头文件之前加上#define NOMINMAX。

4. 标准库bitset对象上的操作

解析:

(1)b.any():b中是否存在置为1的二进制位。

(2)b.none():b中不存在置为1的二进制位。

(3)b.count():b中置为1的二进制位的个数。

(4)b.size():b中二进制位的个数。

(5)b[pos]:访问b中在pos处的二进制位。

(6)b.test(pos):b中在pos处的二进制位是否为1。

(7)b.set():把b中所有二进制位都置为1。

(8)b.set(pos):把b中在pos处的二进制位置为1。

(9)b.reset():把b中所有二进制位都置为0。

(10)b.reset(pos):把b中在pos处的二进制位置为0。

(11)b.flip():把b中所有二进制位逐位取反。

(12)b.flip(pos):把b中在pos处的二进制位取反。

(13)b.to_ulong:把b中同样的二进制位返回一个unsigned long值。

(14)os << b:把b中的位集输出到os流。

5. GCC参数

解析:

(1)static:编译静态库。   

(2)shared:编译动态库。

(3)w:不生成任何警告信息。   

(4)Wall:生成所有警告信息。

(5)-l(小写l)指定要链接的库。

(6)-I(大写i)指定头文件目录。

(7)-L(大写l)指定库目录。

6. Binutils

解析:GNU Binutils(Binary Utilities),即GNU二进制工具集。

7. itoa函数(#include <stdlib.h>)

解析:函数原型char *itoa( int value, char *string, int radix);(把一个整数转换为字符串)

(1)value:欲转换的数据。

(2)string:目标字符串的地址。

(3)radix:转换后的进制数,比如16进制等。

相关函数,如下所示:

(1)char *ultoa(unsigned long value, char *string, int radix) :将无符号整型数value转换成字符串并返回该字符串。

(2)char *ltoa(long value, char *string, int radix) :将长整型数value转换成字符串并返回该字符串。

(3)char *itoa(int value, char *string, int radix):将整数value转换成字串存入string,radix为转换时所用基数。 

(4)double atof(char *nptr) :将字符串nptr转换成双精度数,并返回这个数,错误返回0。  

(5)int atoi(char *nptr) :将字符串nptr转换成整型数,并返回这个数,错误返回0。 

(6)long atol(char *nptr) :将字符串nptr转换成长整型数,并返回这个数,错误返回0。  

(7)double strtod(char *str, char **endptr) :将字符串str转换成双精度数,并返回这个数。 

(8)long strtol(char *str, char **endptr, int base) :将字符串str转换成长整型数,并返回这个数。

8. Tcl/Tk脚本语言

解析:Tcl是"工具控制语言(Tool Control Language)"的缩写。Tk是Tcl"图形工具箱"的扩展,它提供各种标准的GUI接口项,以利于迅速进行高级应用程序开发。

9. LLVM

解析:LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。

10.CC编译器 [2]

解析:在Linux下,cc通常是一个符号连接,指向gcc。

11.CMake安装

解析:

(1)sudo apt-get install cmake

(2)sudo apt-get install cmake-qt-gui

(3)使用命令cmake-gui在终端打开界面

12.静态成员函数

解析:静态成员函数没有this指针,只能访问静态成员数据、其它静态成员函数和类外部的其它函数。

13.C++继承类型

解析:

(1)公有继承(public):当一个类派生自公有基类时,基类的公有成员也是派生类的公有成员,基类的保护成员也是派生类的保护成员,基类的私有成员不能直接被派生类访问,但是可以通过调用基类的公有和保护成员来访问。
(2)保护继承(protected): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。
(3)私有继承(private):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员。

14.可重载运算符

解析:

(1)双目算术运算符:+ (加),-(减),*(乘),/(除),% (取模)
(2)关系运算符:==(等于),!= (不等于),< (小于),> (大于>,<=(小于等于),>=(大于等于)
(3)逻辑运算符:||(逻辑或),&&(逻辑与),!(逻辑非)
(4)单目运算符:+ (正),-(负),*(指针),&(取地址)
(5)自增自减运算符:++(自增),--(自减)
(6)位运算符:| (按位或),& (按位与),~(按位取反),^(按位异或),,<< (左移),>>(右移)
(7)赋值运算符:=, +=, -=, *=, /= , % = , &=, |=, ^=, <<=, >>=
(8)空间申请与释放:new, delete, new[] , delete[]
(9)其它运算符:()(函数调用),->(成员访问),,(逗号),[](下标)

15.不可重载运算符

解析:

(1).:成员访问运算符
(2).*和->*:成员指针访问运算符
(3):::域运算符
(4)sizeof:长度运算符
(5)?::条件运算符
(6)#:预处理符号

说明:运算重载符不可以改变语法结构,不可以改变操作数的个数,不可以改变优先级,不可以改变结合性。

16.虚函数

解析:虚函数是在基类中使用关键字virtual声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。在程序中任意点可以根据所调用的对象类型来选择调用的函数,这种操作被称为动态链接,或后期绑定。

17.纯虚函数

解析:virtual int area() = 0;其中,=0告诉编译器,函数没有主体,上面的虚函数是纯虚函数。

参考文献:

[1] #define NOMINMAX:http://blog.163.com/fleeting_ash/blog/static/663410862009310113424930/

[2] 编译器cc、gcc、g++、CC的区别:https://www.cnblogs.com/52php/p/5681725.html

猜你喜欢

转载自blog.csdn.net/shengshengwang/article/details/58585500
今日推荐