1 class和struct的区别和联系
在c++中,class和struct只有一点不同,它们是可以完全替代使用的。唯一的不同在于,class中的成员默认是private的,而struct中默认是public的。
2 指针和引用的不同
2.1 引用在编译后,本质上还是指针。
2.2 引用定义时必须被赋值,赋值之后不能改变
也就是说,它一出生就要指向一块内存,并且永远都不能改变,或者或者说,它出生就要指向一个对象,并且从一而终。
2.3 不存在null的引用
因此引用很安全。
3 global namespace和前缀"::"
每个symbol都有一个namespace。A symbol, by default, exists in a global namespace, unless it is defined inside a block starts with keyword namespace
, or it is a member of a class, or a local variable of a function。
如果在一个namespace中定义了一个和global namespace同名的变量,那么在该namespace中访问这个global namespace的变量的时候就要在这个变量前面加上“::”。