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.接口是一种特殊的抽象类

相关文章
|
5月前
|
C++
C++一分钟之-虚函数与抽象类
【6月更文挑战第21天】在C++中,虚函数与抽象类是多态的基础,增进类间耦合与灵活性。虚函数实现动态绑定,抽象类定义不可实例化的接口。关键点包括:记得使用`virtual`,避免滥用虚函数,确保派生类实现纯虚函数。抽象类不能直接实例化,派生类必须实现所有纯虚函数。通过实例代码学习和实践,能更好地掌握这些概念以优化代码设计。
50 2
|
6月前
|
C++
C++中类的接口与实现分离的技术性探讨
C++中类的接口与实现分离的技术性探讨
114 1
|
1月前
|
C++
【C++】实现日期类相关接口(三)
【C++】实现日期类相关接口
|
1月前
|
C++
【C++】实现日期类相关接口(二)
【C++】实现日期类相关接口
|
1月前
|
C++
【C++】实现日期类相关接口(一)
【C++】实现日期类相关接口
|
2月前
|
BI 定位技术 C++
超级好用的C++实用库之地理相关接口
超级好用的C++实用库之地理相关接口
36 0
|
4月前
|
存储 编译器 Linux
【C++】string类的使用②(容量接口Capacity )
这篇博客探讨了C++ STL中string的容量接口和元素访问方法。`size()`和`length()`函数等价,返回字符串的长度;`capacity()`提供已分配的字节数,可能大于长度;`max_size()`给出理论最大长度;`reserve()`预分配空间,不改变内容;`resize()`改变字符串长度,可指定填充字符。这些接口用于优化内存管理和适应字符串操作需求。
|
4月前
|
C++ 容器
【C++】string类的使用①(迭代器接口begin,end,rbegin和rend)
迭代器接口是获取容器元素指针的成员函数。`begin()`返回首元素的正向迭代器,`end()`返回末元素之后的位置。`rbegin()`和`rend()`提供反向迭代器,分别指向尾元素和首元素之前。C++11增加了const版本以供只读访问。示例代码展示了如何使用这些迭代器遍历字符串。
|
5月前
|
数据采集 自然语言处理 数据挖掘
一文搞懂:【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
一文搞懂:【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
128 0
|
6月前
|
安全 Linux 编译器
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(下)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
46 0