-2
A
答えて
2
クラスA.
class A
{
//...
};
class B : public A
{
//...
};
void f(const A &a);
又は
void f(const A *a);
または右辺値参照などのオブジェクトへの参照またはconst参照のような引数を宣言する。ここで
は#include <iostream>
#include <string>
struct A
{
virtual ~A() = default;
A(const std::string &first) : first(first) {}
virtual void who() { std::cout << first << std::endl; }
std::string first;
};
struct B : A
{
B(const std::string &first, const std::string &second) : A(first), second(second) {}
void who() { A::who(); std::cout << second << std::endl; }
std::string second;
};
void f(A &&a)
{
a.who();
}
int main()
{
f(A("A"));
f(B("A", "B"));
return 0;
}
その出力は
A
A
B
されていますし、両方のタイプのオブジェクトのための機能をオーバーロードすることができます実証プログラムにあります。
関連する問題
- 1. 引数を受け入れる関数のデコレータ内のクラス
- 2. 関数の引数:引数として上限クラスと親クラス?
- 3. C++の派生クラスの引数として親クラスの参照を渡す
- 4. 基本クラスと派生クラスのフレンド関数
- 5. 派生として基本クラス関数を呼び出す
- 6. Boost Python関数の文字列引数またはNone引数の両方を受け入れる方法
- 7. 派生クラスのテンプレート引数を使用する基本クラス
- 8. クラスへの引数の受け渡し
- 9. キャッチ派生クラス異なるメソッドと引数を持つ基本クラスの例外
- 10. 基底クラスと派生クラスの両方の基底クラスのデコレータの使用
- 11. リストを引数として受け入れる関数を書く
- 12. インデックス可能なデータ型を引数として受け入れる関数
- 13. 派生クラスのメンバ関数ポインタ
- 14. 派生クラスのメンバ関数はテンプレート引数を気にしません
- 15. 基本クラスと派生クラスを両方とも配列として使用する場合の円度
- 16. クラスを含むクラスから派生したテンプレート引数が基本クラス
- 17. VB2010引数としてサブへのポインタを受け入れる
- 18. 関数は静的関数ポインタを引数として受け入れることができますか?
- 19. Boost Mem_fnと派生クラスのメンバー関数へのアクセス
- 20. クラスのコンストラクタが受け付ける引数の数
- 21. strncmp()がunsigned char *を引数として受け入れる
- 22. QGraphicsItem派生クラスでマウスイベントを受け取る方法は? Qt
- 23. は、任意の数の引数を受け入れること、
- 24. 関数の引数としてのベクトルの受け渡し
- 25. 派生クラスからの基底クラス関数のアクセス
- 26. 抽象基本クラスと派生クラスのファクトリ関数の戻り値型
- 27. テンプレートクラスと派生クラス
- 28. スマートポインタと派生クラス
- 29. 関数への引数の戻り値を受け入れる
- 30. パイソン:アクセスベースクラス「クラス変数」派生クラスで