c++面向对象程序设计概述

一、OOP

1、面向对象程序设计(OOP)的核心思想是数据抽象、继承和动态绑定

通过数据抽象,可以将类的接口和实现分离;使用继承,可以定义相似的类型并其相似关系建模;使用动态绑定,可以在一定程度上忽略相似类型的区别,而以统一的方式使用它们的对象

二、继承

1、通过继承联系在一起的类构成一种层次关系,通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承而来,这些继承得到的类称为派生类

2、在c++中,基类将类型相关的函数与派生类不做改变直接继承的函数区分对待。对于这些函数,基类希望它的派生类个自定义适合自身的版本,此时基类就将这些函数声明为虚函数

3、派生类必须通过使用派生类列表明确指出它是从哪个基类继承而来,形式如下:

class Circle :public Shape, Line
{
    //......
    virtual string getClassName()
	{
		return "Shape";
	}
}

三、动态绑定

1、通过动态绑定,我们能用同一段代码分别处理基类和派生类的对象

class A
{
private:
	int n;
public:
    //....
	virtual void print()
	{
		cout << "A " << n << endl;
	}
};
class B : public A 
{
private:
	int m;
public:
	//....
	virtual void print()
	{
		cout << "B " << m << endl;
	}
};
void PrintInfo(A a)        //可以对象A或者对象B,来调用各自的print
{
	a->print();
}

2、由于函数的运行版本由实参决定,即在运行时选择函数的版本,所以动态绑定有时又被称为运行时绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值