如下图,先建好文件, 这里用的是Visual studio 2010

当然也可以用eclipse for cpp,如下图:

AbstractShape.h

#ifndef ABSTRACTSHAPE_H_
#define ABSTRACTSHAPE_H_
/**
* 抽象形状类
*/
class AbstractShape
{
private:
//私有字段
int edge; public:
//构造函数
AbstractShape(int edge); //实例方法,子类继承后可以重用
int getEdge(); //纯虚函数,父类没有实现,调用时只会调用子类的实现
virtual int calcArea()=;
}; #endif /* ABSTRACTSHAPE_H_ */

AbstractShape.cpp

#include "AbstractShape.h"

AbstractShape::AbstractShape(int edge)
{
this->edge = edge;
} int AbstractShape::getEdge()
{
return this->edge;
}

Triangle.h

#include "AbstractShape.h"
#ifndef TRIANGLE_H_
#define TRIANGLE_H_ /**
* 三角形类,继承自抽象形状类
*/
class Triangle: public AbstractShape
{
private:
//私有字段
int bottom;
int height; public:
//构造函数
Triangle(int bottom, int height); //重写父类同名方法,用于实现多态性
int calcArea();
}; #endif /* TRIANGLE_H_ */

Triangle.cpp

#include "AbstractShape.h"
#include "Triangle.h" Triangle::Triangle(int bottom, int height) :
AbstractShape()
{
this->bottom = bottom;
this->height = height;
} int Triangle::calcArea()
{
return this->bottom * this->height / ;
}

Rectangle.h

#include "AbstractShape.h"
#ifndef RECTANGLE_H_
#define RECTANGLE_H_ /**
* 矩形类,继承自形状类
*/
class Rectangle: public AbstractShape
{
private:
//私有字段
int bottom;
int height; public:
//构造函数
Rectangle(int bottom, int height); //重写父类同名方法,用于实现多态性
int calcArea();
}; #endif /* RECTANGLE_H_ */

Rectangle.cpp

#include "AbstractShape.h"
#include "Rectangle.h" Rectangle::Rectangle(int bottom, int height) :
AbstractShape()
{
this->bottom = bottom;
this->height = height;
} int Rectangle::calcArea()
{
return this->bottom * this->height;
}

Main.cpp

#include "AbstractShape.h"
#include "Triangle.h"
#include "Rectangle.h"
#include <iostream>
using namespace std; int main()
{
Triangle triangle = Triangle(, );
cout << triangle.getEdge() << endl;
cout << triangle.calcArea() << endl; Rectangle rectangle = Rectangle(, );
cout << rectangle.getEdge() << endl;
cout << rectangle.calcArea() << endl; return ;
}

编译运行,运行结果:


cpp面向对象编程的更多相关文章

  1. C++ Primer 学习笔记_72_面向对象编程 --句柄类与继承[续]

    面向对象编程 --句柄类与继承[续] 三.句柄的使用 使用Sales_item对象能够更easy地编写书店应用程序.代码将不必管理Item_base对象的指针,但仍然能够获得通过Sales_item对 ...

  2. ndk学习之c++语言基础复习----面向对象编程

    关于面向对象编程对于一个java程序员那是再熟悉不过了,不过对于C++而言相对java还是有很多不同点的,所以全面复习一下. 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程 ...

  3. uda 4.C++面向对象编程

    Python vs C++ 对比课   在本课中,你将学习如何用 C++ 编写类.像以前的课程一样,你需要比较 Python 的编程方式和 C++ 中编程方式的不同. 我们直接看例子.下面是一个名为 ...

  4. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

  5. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  6. PHP 面向对象编程和设计模式 (1/5) - 抽象类、对象接口、instanceof 和契约式编程

    PHP高级程序设计 学习笔记 2014.06.09 什么是面向对象编程 面向对象编程(Object Oriented Programming,OOP)是一种计算机编程架构.OOP 的一条基本原则是计算 ...

  7. Delphi_09_Delphi_Object_Pascal_面向对象编程

    今天这里讨论一下Delphi中的面向对象编程,这里不做过多过细的讨论,主要做提纲挈领的描述,帮助自己抓做重点. 本随笔分为两部分: 一.面向对象编程 二.面向对象编程详细描述 ------------ ...

  8. python基础-面向对象编程

    一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 ...

  9. 面向对象编程(OOP)

    什么是面向对象编程,对于面向对象编程与面向过程编程的解释随处可见,个人认为对面向对象编程解释最好的一个定义是:依赖倒转原则是面向对象编程的标志,面向对象编程是一种思想,无论使用哪一种编程语言,如果在编 ...

随机推荐

  1. Opencv 学习笔记之——鼠标,进度条操作

    Opencv中提供一个鼠标调用的函数,SetMouseCallback()函数,它配合一个回调函数来实现鼠标操作的功能.   首先看一下SetMouseCallback的函数原型: c++: void ...

  2. [Leetcode Week11]Kth Largest Element in an Array

    Kth Largest Element in an Array 题解 题目来源:https://leetcode.com/problems/kth-largest-element-in-an-arra ...

  3. swift 之嵌套的理解 func chooseStepFunction(backwards: Bool) -> (Int) -> Int

    http://blog.csdn.net/lzx_322/article/details/28861199 swift 函数使用前面需要添加 func 有返回值需要使用-> 后面添加返回类型 , ...

  4. python学习笔记 IO 文件读写

    读写文件是最常见的IO操作.python内置了读写文件的函数. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统完成的,现代操作系统不允许普通的程序直接对磁盘进行操作,所以, 读写 ...

  5. kuangbin带你飞 并查集 题解

    做这套题之前一直以为并查集是很简单的数据结构. 做了才发现自己理解太不深刻.只看重片面的合并集合.. 重要的时发现每个集合的点与这个根的关系,这个关系可以做太多事情了. 题解: POJ 2236 Wi ...

  6. 利用git把本地项目传到github+将github中已有项目从本地上传更新

    利用git把本地项目传到github中 1.打开git bash命令行,进入到要上传的项目中,比如Spring项目,在此目录下执行git init 的命令,会发下在当前目录中多了一个.git的文件夹( ...

  7. PL/SQL 06 函数 function

    --函数 create or replace function  函数名称(参数1 类型1,参数2 类型2,...)  return 数据类型as  变量.常量声明;begin  代码;end; cr ...

  8. 表单文件上传,ajax文件上传

    原创链接:http://www.cnblogs.com/yanqin/p/5345562.html html代码  index.jsp(表单文件上传) <form action="sh ...

  9. [ python3 ] 基于zabbix 自动抓取每天监控数据

    通过python登录到zabbix直接抓取每天的数据的图片趋势图,并制作成静态index.html给与展示并发送提示邮件. 操作系统:Centos6.7 python版本:python3.5 #!/u ...

  10. redis 数据类型的使用场景

    value为对应的数据类型. String 应用场景: String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是String,也可以是数字. Hash 应用 ...