总结
如果我们对全局作用域内的东西不加 std:: 的话,在很复杂的类内可能用类外的报错
在写模板的时候,即使包括了其他头文件,如果不写前置声明的话,也是会报错的,可能报错看不懂很玄幻。
#pragma once / #ifndef _头文件名 #endif ,都是可以只让该头文件包含一次,这个很重要,可能在复杂的工程里,俩个头文件互相包含,结果导致重复展开,导致类的重定义,从而导致报错,如果是模板类,可能报错很玄幻,你看不懂。
#pragma once 可以让声明的头文件只包含一次,而 #ifndef #define _xxx #endif 这个防止包含头文件的方法,这个有个坑,如果其他头文件定义了相同的#define 后的这个宏名字,导致该头文件不会展开,导致有坑。