侯捷c++ 壹

1,c++早期叫c with class(1983),到98年有了第一个标准

2, c++ 包括语言和标准库

3,c++ STL源码解析

4,面向对象:数据和处理数据的函数包装在一起,形成一个对象处理自己的数据。

5,复数,不含指针(单一的类)

6,字符串含有指针

7,class.h class.cpp xxx.h(标准库)

8, 类的初始化可以加入默认值

     Complex(double x=0,double y=0):real(x),image(y){}

9,  构造函数的重载,冲突

    Complex():re(0),im(0){}

Complex(double x=0,double y=0):re(x),image(y){}

10,构造函数放到private中 singleton

11, 函数的后面的const(只看不改,只用不改,就是不改变数据内容)

12, 不允许常量对象调用可能改变数据的内容的函数方法(const using const functions)

13,pass by value(copy) & pass by reference(to const)后者相当于传指针,快,推荐(但是实际上至少要传递四个字节)

    不希望修改就变为const reference,该加入const的地方要加入

14, return by reference(to const) 尽量这样做

15,friend 直接调用我的数据,快,但是打破了封装的要求

16,相同class的各个objects互为友元

    Complex & Complex::operator+=(const Complex &temp)

{//就好比这里的temp

re += temp.re;

im += temp.im;

return *this;

}

17,传出去的数据到底要不要修改?

    比如c1+c2,结果可以放到c1上返回reference,也可以建立一个local变量,返回value

18,this默认指向调用者。传递者无需知道接受者使用什么方式来接受。

    c3+=c2+=c1;多次传递赋值计算,建议传递引用

19,非成员函数(无this),全局的函数

 

20, 为什么返回临时对象(不需要名字的临时创建)?

    如果函数撤销之后就消失,那当然不能够传出引用,return typename(1,8);

21,操作符重载作用在左边的变量上

 

22,过程:

    防卫式的说明--构建类名--具体数据成员--具体函数

发布了27 篇原创文章 · 获赞 1 · 访问量 1435

猜你喜欢

转载自blog.csdn.net/qq_34890856/article/details/88758459
今日推荐