C++ 点滴 (二)
1.typedef 不仅可以给类型起别名,也可以简化一些比较复杂的类型申明,比如typedef int byte_4,代表给int起了个别名为byte_4,在代码中可以使用byte_4来代替int;又比如typedef bool Func(const string&,const string&);使用Func来代表一个函数申明,该函数返回bool型,包含两个const string& 类型参数。
2.针对重载函数的函数指针需要精确匹配,否则会报错;
3.像数组一样,函数不能直接作为形参,但是可以使用函数指针来传递函数;
4.局部静态对象,在函数第一次调用时创建,函数结束时并不销毁它,而是在整个应用结束时才销毁;
5.C++ 11引入位置返回类型,可以将函数的返回类型放在形参列表后面,但与形参中间隔了一个->符号,比如 auto test(int & a) ->bool等同于 bool test(int& a);
6.形式参数列表中,const和&对参数的限制可以理解为:如果函数的参数不需要拷贝,则用&来引用,比如iostream类型的变量不能被拷贝,所以形式参数中但凡使用io的,则只能使用&来限制参数,const代表函数体内对参数不会做更改,如果有更改,编译器会报错。
7.struct和class都可以用来定义一个类,区别在于如果没有存在public或者private等修饰符,类成员的默认修饰不一样。对于struct而言,默认都是public,对于class而言,都是private的。
8.友元friend简单来说,就是允许非类中的函数或者其他类来访问类中非公共的成员,具体用法就是在类中以friend开头申明类或者函数。
9.编译器在编译C++代码时是分阶段处理的,先处理申明,再处理定义。所以在类的成员函数中使用后申明的成员变量时,编译器不会报错。