美文网首页
博览网 week1

博览网 week1

作者: D_东 | 来源:发表于2017-12-27 20:54 被阅读0次

    Week1-3

    一 内敛函数

    #1 函数若在class body类内定义完成,便自动成为inline。inline函数的好处,inline只是你对编译器的一个建议,最后是不是inline函数,要由编译器决定。

    #2 如果函数太复杂,编译器就没法把它当作inline函数。

    二 构造函数

    #1 构造函数的初始化列表。只有构造函数才有的写法。函数重载常常发生在构造函数身上。

    #2 构造函数可以有很多个。不能同时有两个默认构造函数。

    complex (double r = 0, double i = 0): re(r), im(i){}

    complex () : re(0), im(0) {} 这两种构造函数,会引起编译器调用冲突,比如complex c1; complex c2();

    #3 一般情况下,不允许构造函数放在private区,但有一种情况例外,singleton设计模式,即只允许外界有一个class对象。

    三 常量成员函数 double real () const  {return re;}

    #1  不改变类内私有数据成员,函数后要加const。

    #2 常对象不可以调用非常成员函数。

    四 设计函数,对于参数传递,尽量传引用。尽量采用参数值引用传参。如果不想改变原来的值,函数形参前可以加const。返回值传递,也尽量传引用。函数内部定义的局部变量,不可以返回其引用。

    五 friend(友元)。友元直接拿去私有数据,比通过调用成员函数直接拿去数据要快很多。

    六 typename();创建临时对象。

    六 相同类的各个对象互为友元。

    七 好的类的特点。

    1.数据放在private。2.函数按引用传值。 3.返回值尽量按引用传递。4.成员函数,应该加const的,要加const。5.尽量用构造函数的初始化列表初始化数据成员。

    八 运算符的重载,类内与类外两种。 类外必须是全局函数。W1-5.

    九 传递者无需知道接收者是以引用形式接收。

    十 面向对象,任何一种函数,你可以设计为成员函数或者全局函数。

    十一 操作符重载,有两种写法。1.成员函数的写法。2.非成员函数的写法(写为全局函数)。对于<<输出操作符,只能写成全局函数。

    十二 用成员函数重载+=运算符时,形式参数只需要写右边要传入的参数,左边会作为隐藏的参数传入。

    十三 把+设计为全局函数,可以实数与复数相加,+=设计为类内成员函数。这里有点疑问。暂且搁置。

    十四 两种类

    #1 带指针的类与不带指针的类。不带指针的类,大多不用写析构函数。

    相关文章

      网友评论

          本文标题:博览网 week1

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