个人补充:
第31讲
1.如果在类中声明了const常量,那么要声明它为static
// 报错:
class Temp
{
const int arraySize = 5;
int array[arraySize];
};
// 正确:
class Temp
{
static const int arraySize = 5;
int array[arraySize];
};
第32讲
1.char*指针存储字符串
char* name = "Cherno"; // 这种赋值会认为是一个字符串,内存最后会默认加\0
char name[6] = {'C', 'h', 'e', 'r', 'n', 'o'}; // 这样就是一个字符数组,内存最后不会加\0
std::cout << name << std::endl; // 正常显示。注意可以这样输出,直接把一个字符数组或字符串指针输出!
std::cout << name2 << std::endl; // 字符数组后面输出乱码,因为它后面默认没有加\0
2.std::cout<< string
需要#include <string>
原因是一般#include <iostream>
这个头文件里都会包含std::string
的定义,但是<<运算符的定义却在<string>
中,因此输出的时候需要包含string头文件。
3.定义string的时候赋值的字符串是const char*类型
std::string name = "Cherno" + "Hello"; // 报错,这两个都是const char*,不能直接把两个指针相加
std::string name = std::string("Cherno") + "Hello"; // 正确,相当于先构造了string对象,然后调用了它重载的+运算