C では、関数のオーバーライドにより、派生クラスが基本クラスの関数をオーバーライドして、その動作を拡張または変更できます。構文は次のとおりです。 同じ関数名を持つ 同じ関数シグネチャを持つ override キーワードを使用する
#C## での関数書き換えに関する包括的なガイド#C では、関数のオーバーライドにより、派生クラスが基本クラスの関数をオーバーライドできます。これは、基本クラスの機能を拡張したり、その動作を変更したりするときに役立ちます。
構文基本クラスの関数をオーバーライドするには、派生クラスの関数は次のとおりである必要があります。
基本クラスの関数と同じ名前を持つ必要があります。 class function
class Base { public: virtual void print() { std::cout << "Base class" << std::endl; } };
関数をオーバーライドするには、派生クラスで次の構文を使用できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:cpp;toolbar:false;'>class Derived : public Base {
public:
override void print() { std::cout << "Derived class" << std::endl; }
};</pre><div class="contentsignin">ログイン後にコピー</div></div>
Shape
基本クラスと Circle
派生クラスを検討します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:cpp;toolbar:false;'>class Shape {
public:
virtual double area() { return 0; }
};
class Circle : public Shape {
public:
double radius;
override double area() {
return 3.14 * radius * radius;
}
};</pre><div class="contentsignin">ログイン後にコピー</div></div>
関数では、virtual を使用できます。これら 2 つのメソッドを呼び出すメソッド スケジューリング :<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:cpp;toolbar:false;'>int main() {
// 创建一个圆形对象
Circle circle;
circle.radius = 5;
// 通过基类指针调用派生类函数
Shape* shape = &circle;
double area = shape->area();
std::cout << "Area of the circle: " << area << std::endl;
return 0;
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
Output:
Area of the circle: 78.5
以上がC++で基本クラス関数をオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。