美文网首页
geekbandC++面向对象高级编程(上)笔记

geekbandC++面向对象高级编程(上)笔记

作者: 菜鸟游侠k2 | 来源:发表于2016-10-02 20:41 被阅读0次

    第一感觉是好基本


    推荐了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://zhidao.baidu.com/link?url=SVyAiSChbzcvTNIWuQP8RbfleHxTYJPgtSbGtpm5dOQM3M7FHZzqy0UVmqL5zNOu7lHIyXdgYVxtmshIWhq-nK

    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

    相关文章

      网友评论

          本文标题:geekbandC++面向对象高级编程(上)笔记

          本文链接:https://www.haomeiwen.com/subject/tsvdyttx.html