static_cast<char>
char a = static_cast<char>(97);
// 'a'
前置声明(forward declaration)
只给出声明,不提供实现(implementation),前置声明分为:
类的前置声明
class A;
函数的前置声明
void func(const std::string& filename);
字符串的拼接
允许:"hello""world"
但不允许:"hello"+"world"
顺便问一句,"hello"
是什么数据类型?其类型为char const*
, 也即上面的编译支持,显然结论是C++标准库并未提供支持该数据类型(char const*
)的operator+
运算符重载;
auto s = "hello";
std::cout << typeid(s).name() << std::endl;
// typeid关键字,所在的头文件为<typeinfo>,但并非是`std`的标准命名空间
char const *
常量指针,也即指向的内容为常量。
auto s = "hello";
s = "world"; // 合法,改变指针的指向,并未对原始指针所指向的内容进行修改
*s = "good"; // 非法