class Base { public: virtual void f() const volatile noexcept { } }; class Derived: public Base { public: virtual inline void f() const volatile noexcept override final { } };
// | A.Base | B.Base | Derived | // | Base | Derived | // virtual
class UsingBase { public: UsingBase(int) { } }; class Using: public UsingBase { public: using UsingBase::UsingBase; };
struct Hoge { Hoge(int) {} // ←これを変換コンストラクタと呼ぶ operator int() { // ←これを型変換演算子と呼ぶ return 1; } }; int main() { Hoge h1; Hoge h2; Hoge h3 = h1 + h2; int i = h3; // 型変換演算子に explicit を書くとこれが禁止される }
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです