記事検索

検索ワードを入力してください。
Sky Tech Blog
C++の​overrideキーワードの​使い方、​有用性に​ついて

C++の​overrideキーワードの​使い方、​有用性に​ついて

C++のoverrideキーワードについて説明します。具体的なコード例を交えて、overrideキーワードの使い方や、overrideキーワードを使うことによる利点について解説します。

はじめに

C++にはoverrideというキーワードがあります。
このoverrideキーワードの使い方、有用性についてご紹介します。

overrideキーワードの​使い方

overrideキーワードは、派生クラスで仮想関数をオーバーライドする際に使用できます。

以下のコードは、overrideキーワードを使用した例です。

#include <iostream>

class Base {
public:
    virtual ~Base() = default;
    virtual void display() const {
        std::cout << "Base display" << std::endl;
    }
};

class Derived : public Base {
public:
    void display() const override {
        std::cout << "Derived display" << std::endl;
    }
};

int main() {
    std::unique_ptr<Base> basePtr = std::make_unique<Derived>();
    basePtr->display(); // "Derived display" が出力される
}

overrideキーワードの​有用性

overrideキーワードを使わなくてもコンパイルは通りますが、使うとさまざまな利点があります。

1. タイプミスの​防止

overrideキーワードを使用すると、関数名のタイプミスやシグネチャの違いによってオーバーライドされていない場合に、コンパイラはエラーを報告します。

例えば、先ほどのコードを以下のように変更します。

class Derived : public Base {
public:
    void disply() const override { // タイプミス
        std::cout << "Derived display" << std::endl;
    }
};

この場合、displyという関数名はBaseクラスのdisplay関数をオーバーライドしていないため、コンパイラはエラーを報告します。
これにより、オーバーライドされていない問題を早期に発見することができます。

2. 将来の​変更に​対する​安全性

基底クラスの仮想関数のシグネチャが変更された場合、overrideキーワードを使用していると、変更していない派生クラスのオーバーライド関数がコンパイルエラーとなります。
これにより変更が必要な箇所を見逃すことなく修正することができます。

class Base {
public:
    virtual ~Base() = default;
    virtual void display(int value) const {
        std::cout << "Base display: " << value << std::endl;
    }
};

class Derived : public Base {
public:
    void display() const override { // コンパイルエラー
        std::cout << "Derived display" << std::endl;
    }
};

3. コードの​可読性向上

overrideキーワードを使用することでコードの可読性が向上します。
コードを読む人に対して、この関数が基底クラスの仮想関数をオーバーライドしていることを明示的に示すことができます。
これにより、コードの意図がより明確になり理解しやすくなります。

まとめ

C++のoverrideキーワードは、タイプミスの防止、将来の変更に対する安全性の向上、コードの可読性向上といったさまざまな利点があります。
overrideキーワードを使用することでより安全でメンテナンスしやすいコードを書くことができます。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム