请问把基类构造函数声明为protected有啥好处呢(抽象基类)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问把基类构造函数声明为protected有啥好处呢(抽象基类)相关的知识,希望对你有一定的参考价值。

class A()

protected:
A()
public:
virtual ~A()=0;

不能用它来创建一个对象,只能有它的子类继承才能实例化。
可以用来实现Singleton模式
参考技术A protected专门就是为继承(子类)设计的
用public继承 那么基类所有的访问标识在子类不变

protected只有类本身 和类的子类可以访问,对象是无法访问的!

除了在继承上 他跟private没有任何区别!
private 子类也将不能访问!

跟你说了啊~~~ 只是在继承上不同 其他都一样的
private无法继承 也就是说子类也不能用基类的 private...
但是protected就是可以的~

明白吗? pravite 只对本类可见
protected 对本类和继承类可见

c++中的虚函数有啥作用?

其作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。实现动态多态性,使同一类族中不同类的对象对同一函数调用作出不同响应。说白了,就像一个多频段收音机,一台机子响应不同事件。 参考技术A 类的三个重要特征:封装、继承、多态性。
其中多态性就是通过函数重载(运算符重载实质上也是函数重载)和虚函数来实现的。
虚函数的作用:在基类用virtual声明成员函数为虚函数,在派生类中重新定义该函数,就可以通过基类指针或引用来访问基类和派生类中的同名函数。
虚函数实现多态性:同一类族中不同类的对象,对同一函数调用做出不同的响应。
多态性其实就是一个接口,多种方法,分为静态多态性和动态多态性,函数重载属于静态多态性,在程序编译时就可确定调用哪个函数,其过程称为静态关联或早期关联,静态多态性又称编译时多态性;虚函数属于动态多态性,在程序运行过程中才动态地确定所调用的是那个对象的函数,其过程称为动态关联或滞后关联,动态多态性又称运行时多态性。

以上是关于请问把基类构造函数声明为protected有啥好处呢(抽象基类)的主要内容,如果未能解决你的问题,请参考以下文章

虚函数******

关于C++基类与派生类

c++中的虚函数有啥作用?

<继承问题>可以把基类对象赋值给子类对象么?

析构函数 声明为protected

Java中,构造函数没有返回值。请问没有返回值和返回值类型为void,有啥区别?