C++中的抽象类和接口

简介: C++中的抽象类和接口

面向对象中的抽象类

1.可用于表示显示世界中的抽象概念

2.是一种只能定义类型,而不能产生对象的类

3.只能被继承并重写相关函数

4.直接特征就是相关函数没有完整实现

5.抽象类不能创建对象,只能用于继承

6.C++中没有抽象类的概念

7.C++中通过纯虚函数实现抽象类

8.纯虚函数时指只定义原型的成员函数

9.一个C++类中存在存虚函数就成为了抽象类

class Shape
{public:
virtual double area()=0;--------->“=0”用于表示当前是声明纯虚函数,因此不需要定义函数体
};
class Circle:public Shape
{
int mr;
public :
  Circle(int r)
  {
   mr=r;
   } 
double area(){
return 3.14*mr*mr;
}
}
void area(Shape* p)
{
double r=p->area();
cout<<"r = "<<r<<endl;
}//---------->这里会发生多态的现象-----》通过抽象类的指正来调用纯虚函数

注意:

1.抽象类只能用作父类继承

2.子类必须实现纯虚函数的具体功能

3.纯虚函数被实现后成为虚函数

4.如果子类没有实现纯虚函数,则子类成为抽象类,不能创建对象


接口:(直接的说---接口是一组行为的规范,是一种函数原型)

1.类中没有定义任何的成员变量

2.所有的成员函数都是共有的

3。所有的成员函数都是纯虚函数

4.接口是一种特殊的抽象类

相关文章
|
6天前
|
C++
C++中类的接口与实现分离的技术性探讨
C++中类的接口与实现分离的技术性探讨
21 1
|
17天前
|
C++
C++程序中的抽象类
C++程序中的抽象类
21 0
|
8天前
|
安全 Linux 编译器
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(下)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
19 0
|
8天前
|
安全 C语言 C++
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(中)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
17 0
|
8天前
|
Linux 调度 C语言
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(上)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
16 0
|
8天前
|
存储 编译器 C语言
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题(下)
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题
26 1
|
8天前
|
存储 编译器 Linux
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题(中)
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题
22 1
|
8天前
|
编译器 C语言 C++
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题(上)
从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题
12 0
|
9天前
|
存储 算法 C语言
从C语言到C++_16(list的介绍和常用接口函数)
从C语言到C++_16(list的介绍和常用接口函数)
3 0
|
10天前
|
C++
c++接口(抽象类)
c++接口(抽象类)
21 1