一篇文章带你了解C++面向对象编程--继承

 更新时间:2021年08月31日 18:04:46   作者:Wonderfulness  
这篇文章主要介绍了解析C++面对象编程--继承的运用,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助

C++ 面向对象编程 —— 继承

"Shape" 基类

class Shape {
public:
	Shape() {		// 构造函数
		cout << "Shape -> Constructor" << endl;
	}
	~Shape() {		// 析构函数
		cout << "Shape -> Destructor" << endl;
	}
	void Perimeter() {		// 求 Shape 周长
		cout << "Shape -> Perimeter" << endl;
	}
	void Area() {		// 求 Shape 面积
		cout << "Shape -> Area" << endl;
	}
};

"Circle" 派生类

"Circle" 类继承于 “Shape” 类

class Circle : public Shape {
public:
	Circle(int radius) :_r(radius) {
		cout << "Circle -> Constructor" << endl;
	}
	~Circle() {
		cout << "Circle -> Destructor" << endl;
	}
	void Perimeter() {
		cout << "Circle -> Perimeter : "
			<< 2 * 3.14 * _r << endl;		// 圆周率取 3.14
	}
	void Area() {
		cout << "Circle -> Perimeter : "
			<< 3.14 * _r * _r << endl;		// 圆周率取 3.14
	}
private:
	int _r;
};

"Rectangular" 派生类

"Rectangular" 类继承于 “Shape” 类

class Rectangular : public Shape {
public:
	Rectangular(int length, int width) :_len(length), _wid(width) {
		cout << "Rectangular -> Contructor" << endl;
	}
	~Rectangular() {
		cout << "Rectangular -> Destructor" << endl;
	}
	void Perimeter() {
		cout << "Rectangular -> Perimeter : "
			<< 2 * (_len + _wid) << endl;
	}
	void Area() {
		cout << "Rectangular -> Area : "
			<< _len * _wid << endl;
	}
private:
	int _len;
	int _wid;
};

"main()" 函数

int main()
{
	/*  创建 Circle 类对象 cir  */
	Circle cir(3);
	cir.Perimeter();
	cir.Area();
	cout << endl;
	/*  创建 Rectangle 类对象 rec  */
	Rectangular rec(2, 3);
	rec.Perimeter();
	rec.Area();
	cout << endl;
	return 0;
}

运行结果

这张图不好看

1.创建派生类对象 :

基类的 Constructor 先执行,然后执行子类的 Constructor

2.析构派生类对象 :

派生类的 Destructor 先执行,然后执行基类的 Destructor

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C++多继承(多重继承)的实现

    C++多继承(多重继承)的实现

    多继承容易让代码逻辑复杂、思路混乱,本文主要介绍了C++多继承(多重继承)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • C++中形参和实参的区别及说明

    C++中形参和实参的区别及说明

    这篇文章主要介绍了C++中形参和实参的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • C++关键字typename的深入理解

    C++关键字typename的深入理解

    本篇文章是对C++中的关键字typename进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 基于C++编写一个进度条的示例代码

    基于C++编写一个进度条的示例代码

    这篇文章主要为大家详细介绍了如何利用C++实现一个命令行进度条,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-06-06
  • C语言实现逆波兰式实例

    C语言实现逆波兰式实例

    这篇文章介绍了C语言实现逆波兰式实例,有需要的朋友可以参考一下
    2013-09-09
  • c++中的继承关系

    c++中的继承关系

    继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程,本文给大家介绍c++中的继承关系,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • C语言 动态分配数组案例详解

    C语言 动态分配数组案例详解

    这篇文章主要介绍了C语言 动态分配数组案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C++类与对象及构造函数析构函数基础详解

    C++类与对象及构造函数析构函数基础详解

    这篇文章主要为大家介绍了C++类与对象及构造函数析构函数基础详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Qt QTreeWidget 树形结构实现代码

    Qt QTreeWidget 树形结构实现代码

    Qt中实现树形结构可以使用QTreeWidget类,也可以使用QTreeView类,QTreeWidget继承自QTreeView类,接下来通过本文给大家介绍Qt QTreeWidget 树形结构实现代码,需要的朋友可以参考下
    2021-11-11
  • 一文带你吃透C++继承

    一文带你吃透C++继承

    继承是C++语言的一个重要特性,继承使得软件(代码)复用变得简单、易行,可以通过继承复用已有的程序资源,缩短软件开发的周期,本就带大家吃透C++继承,需要的朋友可以参考下
    2023-06-06

最新评论