名前空間
変種
操作

final specifier

提供: cppreference.com
< cpp‎ | language

 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定 (非推奨)
noexcept 指定子 (C++11)
例外
名前空間
指定子
decltype (C++11)
auto (C++11)
alignas (C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr (C++11)
ユーザ定義 (C++11)
ユーティリティ
属性 (C++11)
typedef 宣言
型エイリアス宣言 (C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
仮想関数
override 指定子 (C++11)
final 指定子 (C++11)
特別なメンバ関数
テンプレート
その他
 
仮想関数は、派生クラス内またはクラスは継承できませんそのオーバーライドできないことを指定します
Original:
Specifies that a 仮想関数 can not be overridden in a derived class or that a class cannot be inherited
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

目次

[編集] 構文

function_declaration final ;
class class_name final base_classes

[編集] 説明

仮想関数の宣言で使用する場合は、finalは、関数が派生クラスによってオーバーライドされないかもしれないことを指定します.
Original:
When used in a virtual function declaration, final specifies that the function may not be overridden by derived classes.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
finalメンバ関数宣言またはクラスの頭の中で使用される特殊な意味を持つ識別子です。他の文脈では予約されていないと名前のオブジェクトおよび関数に使用されるかもしれません.
Original:
final is an identifier with a special meaning when used in a member function declaration or class head. In other contexts it is not reserved and may be used to name objects and functions.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[編集]

struct A
{
    virtual void foo() final;
};
 
struct B final : A
{
    void foo(); // Error: foo cannot be overridden as it's final in A
};
 
struct C : B // Error: B is final
{
};

[編集] 参照