内容:

(1)只能用成员形式重载的运算符
(2)new/delete操作符的重载
(3)封装和继承的初识
(4)继承的特性
(5)子类及其函数的特性
(6)多重继承和虚继承

1.只能用成员形式重载的运算符
(1)[] 下标操作符
(2)() 函数操作符
(3)* -> 间接操作符

2.new/delete操作符的重载

注意:
如果需要在调用构造函数之前做一些初始化工作/在调用析构函数之后做一些善后工作,则可以通过new/delete运算符重载的函数来实现

3.封装和继承的初识
3.1 概念
(1)封装
使用访问控制符对类型中的属性和行为进行访问限制的机制
public protected private
(2)继承
表达类型之间共性和特性的依存关系的一种语言机制

如:
学生类:
属性:姓名 年龄 学号
行为:吃饭 学习
教师类:
属性:姓名 年龄 职称
行为:吃饭 授课

将学生类和教师类的共性提取出来,组成人类:
属性:姓名 年龄
行为:吃饭

剩下的是学生类和教师类的特性:
学生类:
属性:学号
行为:学习
教师类:
属性:职称
行为:授课

于是发现:
人类:(姓名,年龄,吃饭)
/ \
(学号,学习)学生类 教师类(职称,授课)

人类:父类/基类
学生类/教师类:子类/派生类

3.2 继承的语法格式
class 子类名 : 继承方式 父类名1,继承方式2 父类名2,...
{
子类类型的定义;
};

继承方式:
public: 公有方式继承
protected:保护方式继承
private: 私有方式继承

练习:
vi 07inherit.cpp文件,自定义Person类和Teacher类,提供构造函数和行为

4.继承的特性
(1)一个子类类型的对象在任何时候都可以看做该类的基类类型的对象
(2)一个基类类型的对象如果作为子类类型的对象被访问,有可能引发非法内存访问错误
(3)在子类中可以访问基类中的公有和保护成员,但是不可以访问私有成员
(4)在子类中可以定义和基类中同名的标示符,子类隐藏父类(名字隐藏)

5.继承方式和访问控制符

5.1 访问控制符

访控符 访控属性 本类 子类 类外 友元
---------------------------------
public 公有的 ok ok ok ok
protected 保护的 ok ok no ok
private 私有的 ok no no ok

5.2 继承方式的特性
基类中 公有子类 保护子类 私有子类
----------------------------------
公有的 公有的 保护的 私有的
保护的 保护的 保护的 私有的
私有的 私有的 私有的 私有的

注意:
一般采用公有方式继承,保护和私有的继承方式很少使用

如:
class A
{
public:
void print(void){....}
};
class B : private A
{
public:
void show(void)
{
print();
...
}
};

class C
{
print();
};

6.子类中的构造函数和析构函数
(1)在子类的构造函数中可以显式地构造其基类部分("基类类名(实参)"),否则系统会试图以无参的形式去构造基类子对象
(2)子类中的析构函数会自动地调用父类中的析构函数从而释放基类子对象,而父类中析构函数不会自动调用子类的析构函数
(3)delete一个指向子类对象的父类指针时,被调用的仅仅是父类中的析构函数,而该析构函数不会自动调用子类中的析构,从而造成内存泄露,可以通过使用虚析构解决此问题(明天讲到)

C++_基础_运算符重载2的更多相关文章

  1. C++_基础_运算符重载

    内容: (1)输入输出运算符重载 (2)友元类和友元函数 (3)双目运算符重载 (4)单目运算符重载 (5)不能被重载的运算符 (6)只能定义为成员形式的运算符 1.输入输出运算符重载如: int n ...

  2. 网易云课堂_C++开发入门到精通_章节4:运算符重载

    课时23运算符重载 运算符重载 重载赋值运算符 Person& Person::operator=(const Person& other) { //检查自赋值 if (this == ...

  3. C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)

    运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.重载的运算符是遵循函数重载的选择原则,根据不同类型或不同参数来选择不同的重载运算符. 运 ...

  4. C++_基础_类和对象3

    内容: (1)析构函数 (2)拷贝构造和拷贝赋值 (3)静态成员 (4)成员指针 (5)输入输出运算符重载 1.析构函数 当一个对象被创建时,自动调用构造函数进行初始化 当一个对象被销毁时,自动调用析 ...

  5. C++语言基础(17)-运算符重载

    运算符重载的格式为: 返回值类型 operator 运算符名称 (形参表列){ //TODO: } 一.在类里面实例运行符重载 #include <iostream> using name ...

  6. 面向对象程序设计-C++_课时30运算符重载——基本规则_课时31运算符重载——原型_课时32运算符重载——赋值_课时33运算符重载——类型转换

    区分初始化,赋值 #include <iostream> using namespace std; class Fi { public: Fi() {}//1构造函数 }; class F ...

  7. C++_基础_继承、多态

    内容: (1)子类中的拷贝构造和拷贝赋值 (2)多继承和虚继承 (3)多态的初识 (4)虚析构的特性和使用 (5)多态的底层实现 (6)纯虚函数.抽象类的概念 1.子类中的拷贝构造和拷贝赋值 子类中的 ...

  8. C++_基础_类和对象2

    内容: (1)构造函数 (2)初始化列表及其必要性 (3)支持自定义类型转换的构造函数 (4)this指针 (5)const对象和成员函数 (6)析构函数 1.构造函数1.1 格式: class 类名 ...

  9. java工程师_基础_阶段一_HTML笔记篇

    一.了解HTML语言 html:超文本标记语言. 二.HTML整体结构<html> <head> </head> <body> </body> ...

随机推荐

  1. win10系统 Visual Studio 2013 Color Theme Editor插件 安装出错

    下载这个版本,用vs2013打开安装即可:http://pan.baidu.com/s/1hrcfY1A

  2. Java面试题之数据库三范式是什么

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...

  3. 一个很好的用C#导出数据到Excel模板的方法

    /// <summary> /// 导数据到Excel模板 /// </summary> /// <param name="tab">要输出内容 ...

  4. ActionBar隐藏修改图标和标题

    有时候在一些子页面或者内容页面,不需要显示ActionBar的标题栏图标.可用如下方式进行设置. 首先获取到ActionBar对象 ActionBar actionBar=getActionBar() ...

  5. asp.net RadioButton控件基础

    RadioButton按钮呢,必须要设置groupname属性的值才能将多个RadioButton按钮设置为单选按钮,当AutoPostBack="true"的时候,在change ...

  6. ABCpdf.NET中Rect,Bottom,Height的关系

    因为项目需要新功能,要在一个图片的上下加上固定高度的白边如下图.项目中一直使用ABCpdf.NET处理图片,但我一直没有做这方面的功能,所以找来API参考做. 这个简单需求做的过程中出现了一些曲折,主 ...

  7. linux查看与设置主机名

    1.设置主机名    通过编辑/etc/sysconfig/network文件中的HOSTNAME字段就可以修改主机名.如下所示:     [root@zijuan /]# vim /etc/sysc ...

  8. C++中联合体(union)的使用

    typedef union para { ]; struct { double a; double b; double c; double d; }NP; }NPara; //或者如下所示 union ...

  9. Linux 学习之网络故障排查

    1.ping www.baidu.com 查看高速有没有修通,如果通,但还不能上网:可能是浏览器.中毒等问题2.ping 网关(10.0.0.254),目的是排除物理链路(网线,网卡,驱动,IP设置等 ...

  10. Flot chart学习笔记

    背景及相关简介 在最近的BS新项目中需要用到绘图数据显示的功能.在进行充足的选择之后决定才去开源的Flot.Flot是一个jQuery绘图库.主要用于简单的绘制图表功能.具有吸引人的渲染外观和互操作的 ...