什么是C++中的抽象类
根据定义,一个C++的抽象类必须至少包括一个纯虚函数。或者说,放一个没有定义的函数。因为否则子类本身就会变成一个抽象类,所以抽象类的子类必须指定纯虚函数。
广义的概念用抽象类来表达,然后可以利用它来构造更具体的类。你不能制造一个抽象类类型的对象。然而,指针和引用可以被用于抽象类的类型。当开发一个抽象类时,至少要定义一个纯虚拟功能。虚函数是使用纯指定符(=0)语法声明的。
考虑一下虚函数的例子。尽管这个类的目标是为形状提供基本功能,但形状类型的元素太过笼统,没有什么价值。正因为如此,形状是抽象类的一个很好的候选者。
代码
C-lass classname //abstract class
{
//data members
public:
//pure virtual function
/* Other members */
};
抽象类的特点是什么
虽然抽象类的类型不能从头开始创建,但它可以有指针和引用。在抽象类中,除了常规的函数和变量外,还可以存在一个纯虚拟函数。上传,让派生类访问其接口,是抽象类的主要用法。从抽象类衍生出来的类必须实现所有的纯优点。
对抽象类有什么限制
抽象类的以下用途是不允许的。
- 有意识地进行的转换
- 成员数据或变量
- 函数输出的类型
- 辩论的形式
当一个纯虚拟方法被抽象类的本地代码函数Object()明确或间接地调用时,会发生什么情况是未知的。反之,抽象组构造函数和析构函数可以调用额外的成员函数。
尽管抽象类的构造函数可以调用其他成员函数,但如果它们直接或间接调用纯虚拟函数,结果就不得而知了。但是,请稍等一下!究竟什么是纯虚函数?
让我们先研究一下虚拟函数,以便理解纯虚拟函数。
一个被派生类从基类声明中重新定义的成员函数被称为虚函数。
一个缺乏定义或逻辑的虚拟函数被称为抽象函数或纯虚拟函数。在声明的时候,0被分配给它。
抽象在日常生活中的重要性如何
ATM机是日常生活中抽象化的另一个例子;。然而,我们都使用ATM机来完成取款、转账、生成小账单等任务,而我们无法访问ATM机的内部数据。像数据抽象这样的数据保护技术可以防止对数据的非法访问。
抽象类和接口的区别是什么
接口| 抽象类一个接口只能继承另一个接口。 使用Extended关键字,一个抽象类可以执行一个接口并继承另一个类。 为了实现一个接口,需要使用 implements关键字。 使用extends关键字来继承一个抽象类。
抽象类的一个例子是什么
考虑开发一个计算器,当输入形状的周长时,它可以输出。考虑一下你将使用何种编程方式来创建这样一个计算器。通过在Shape类内部创建不同的函数,你可以从一些基本的表格开始,硬编码周长。
这个类可能是这样出现的。
什么是抽象类的例子
考虑开发一个计算器,当输入形状的周长时,该计算器将输出周长。考虑一下你会用什么类型的编程来创建这样一个计算器。通过在Shape类内部创建不同的函数,你可以从一些基本的表格开始,硬编码周长。
这个类可能是这样出现的。
class Shape {
public:
// All the functions of both square and rectangle are clubbed together in a single class.
void width(int w) {
shape_width = w;
}
void height(int h) {
shape_height = h;
}
int areaOfSquare(int s) {
return 4 * s;
}
int areaOfRectange(int l, int b) {
return (l * b);
}
protected:
int shape_width;
int shape_height;
};
int main (){
shapes R;
R.width(5);
R.height(10);
cout<<"The area of rectangle is"<
输出 。
虽然OOP建议我们应该尝试坚持现实世界的推理,但这仍然可以发挥作用。因此,我们可以创建Shape类作为父类,Square和Rectangle类作为子类。如果你以后想添加新的东西,你可以在子类中进行,这将使程序的维护更加简单。我们必须使用抽象类来实践这一功能。在C++中,抽象类至少需要一个纯虚函数。为了防止子类成为抽象类,抽象类的继承类必须指定纯虚函数。