关于面向对象的C ++ [英] About Object Oriented in C++

查看:84
本文介绍了关于面向对象的C ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想让我的B级混凝土派生自A级(抽象类)。



说A级有一个纯虚函数void的SayHello()= 0;而且B类是从A类派生的。是否有可能在不提供纯虚函数SayHello定义的情况下使B类具体化?

I want to make my class B concrete which is derived from class A (Abstract class).

say class A have a pure virtual function "void SayHello()=0;" and class B is deriving from class A. is it possible to make class B concrete without providing pure virtual function "SayHello" definition?

推荐答案

是的,实际上你不能在具体类中有任何纯虚函数,因此 B 中的 SayHello 的重写版本必须是<$ c的具体内容$ c> B 具体。



/ Fredrik
Yes, in fact you cannot have any pure virtual functions in a concrete class so the overridden version of SayHello in B must be concrete for B to be concrete.

/Fredrik


否。

所有抽象属性和方法必须在具体类中实现才能履行合同。
No.
All abstract properties and methods must be implemented in the concrete class in order to fulfil the contract.


class A { // abstract class
public:
   virtual void SayHello() = 0; // abstract member function
};

class B { // concrete class
public:
   void SayHello() { // concrete function
      std::cout << "Hello, I am B." << std::endl;
   }
};


这篇关于关于面向对象的C ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆