第一感觉是好基本
推荐了c++primer和c++
programming language
然后推荐了effectivec++
然后推荐c++11标准库第二版英文
主要的总结
复习
构造函数的initializationlist要会用
函数加不加const,该加加
参数传递尽量用reference
数据尽量都放private函数适当public
一开始防卫式编程
#ifndef?
#define?
#endif
写类
1数据注意private
构造函数名称等于类名,没有返回值
函数设计是否需要默认值
构造函数最好用初值列,剩下的{}写你要写的
所有函数你要考虑const
想好friend(friend更快但是不安全
成员函数自带this
以下参考价值不大
防卫式声明
不能多次include
先写12然后发现有些需要前置声明写0
如果函数是inline的,会比较快比较好
如果函数太复杂就没有办法inline(inline是否真的有效由编译器决定
定义在本体里面定义,就是inline
后面出现的,不在本体内定义的也可以加inline
Accesslevel讲的很浅。。。
默认实参其他函数也可以用,查证了,有默认实参的要放在右边
这个语法是构造函数独有,initializationlist初始列
这种写法比较正规。。。(大气。。。
合理的说法是简单说变量有两个步骤有初始化,然后有assign这样写会比较快。
函数后置的const只用来类的费静态成员后面,(其他地方error)除非成员加了mutable不容不能改动类中的任何成员。。
Const对象只能调用const的成员函数
http://blog.sina.com.cn/s/blog_4dd77fd10100lug5.html
重载的编译器实现,就是ppt右下角的。从编译器角度上(不允许名称完全相同的函数)
构造函数常常重载
右上角的的调用,会导致左边的1
2有二义性
构造函数放在private区,singleton
不改变数据内容的时候加上const
万一你没有加上,说明你写的时候可能会改变,使用者说我不会改,那么用户调用的时候,就会挂掉。出现这种情况,说明设计不好,该加的时候不加
尽量不要passby value
引用在底部相当于指针,形式比较漂亮。
Char1个字节的话,pass by
reference比pass by value快。。
Passby reference你需要的话加const
返回值尽量byreference会快但是有的时候不可以(后面来讲。。。。)
友元可以访问private
通过函数拿,稍微慢一点。用友元会快一点,但是封装会有问题
这样的是对的。原因是头上那句话。
下面是示范的用法。
总结1数据放在private
2参数用reference来传
3参数可以的话用reference来传
4在类的本体的函数应该加const的就要const,可能使用者用会报错
5构造函数的initializationlist尽量去用
二元运算符隐藏的this
不能用returnby reference,返回值之前是没有的,所以是一个localobject
和之前的比较,就是+只有一个输入参数
Question下面这个返回值是否可以是引用。(他的意思的用引用更优,我觉得隔离挺好的。。。
任何一个函数可以定位成员函数或者非成员函数、
<<这个操作符只能写成全局的函数因为cout不可能会认识你
不能加const写入cout会改变cout
复习
构造函数的initializationlist要会用
函数加不加const,该加加
参数传递尽量用reference
数据尽量都放private函数适当public
一开始防卫式编程
#ifndef?
#define?
#endif
写类
1数据注意private
构造函数名称等于类名,没有返回值
函数设计是否需要默认值
构造函数最好用初值列,剩下的{}写你要写的
所有函数你要考虑const
想好friend(friend更快但是不安全
成员函数自带this
网友评论