Heim  >  Artikel  >  Backend-Entwicklung  >  Eine ausführliche Diskussion der C++11-Final- und Override-Spezifizierer

Eine ausführliche Diskussion der C++11-Final- und Override-Spezifizierer

高洛峰
高洛峰Original
2017-01-23 14:04:542067Durchsuche

lautet wie folgt:

//final,override出现在形参列表以及尾置返回类型之后
#include <iostream>
using namespace std;
struct B{
    virtual void f1(int) const;
    virtual void f2(int);
    void f3(int) final;//出错,final不能修饰非虚函数
};
struct D:B{
    void f1(int) const override ;//去掉const将出错,必须和基类中的函数原型一致,否则不能用override来表示覆盖
    void f2(int) final;//final说明继承D的派生类中不能覆盖该函数
    void f3();
};
struct E:B{
    void f2(int);//ok,其直接基类B中该函数没有final说明符
};
struct F:D{
    void f2(int);//出错,无法覆盖该函数,原因是其直接基类D中有final说明符
};

final bedeutet, dass die virtuelle Funktion nicht überschrieben werden kann, und override bedeutet, dass die Funktion eine virtuelle Funktion überschreibt

Die ausführliche Diskussion der C++11-Final- und Override-Spezifizierer im obigen Artikel ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie die chinesische PHP-Website unterstützen.

Ausführlichere Artikel zu C++11-Final- und Override-Spezifizierern finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn