499689317 / notes

note
2 stars 0 forks source link

C++基础 #4

Open 499689317 opened 7 years ago

499689317 commented 7 years ago

编译单元

在vc这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,vc其实做了两步工作

iostream输入输出流

类(class)

类成员
类的构造函数

函数通过传值,传参(形参是一个对象的值),值返回(返回一个局部对象的值)也会调用拷贝构造 拷贝构造的参数必须传引用

当构造函数形参有初始值,将成为默认构造,可以匹配没有参数的对象 上面两个构造函数不能同时声明,因为在构造Thing t(1, 1)这个对象时会报二义性错,俩个构造函数都能匹配 有了第一个默认构造函数,将不能再声明Thing()这个默认构造了,因为会引发二义性

Circle类的构造函数应显示地去调用Point类的构造函数,否则将自动调用Point类的默认构造函数

C++中的this指针

重载

浅拷贝改变一个另一个也随之改变 当一个类成员指针并指向堆空间,我们通常须要重载赋值符号来实现深拷贝 赋值符号重载步骤: 判断是否是自赋值 释放旧空间 开辟新空间 内容拷贝

友元函数(friend)

继承

多态

父类的指针指向子类对象 父类的引用指向子类对象 子类对象赋值给父类对象

不能把父类对象当作子类对象去使用 当父类指针指向子类对象时,可以把父类指针显示地转换为子类指针去调用子类扩展方法(向下转型),向下转型是危险的,因为父类指针有可能没有真正指向一个子类对象 虚函数作用,把父类中需要继承的函数声明为虚函数,就可以保证函数调用时符合对象的真实身份,调用正确版本的函数 未使用向下转型(类型转换)或虚函数,则基类与子类间并没有关联,基类无法获取子类的信息,也不存在多态

虚函数(virtual)

抽象类