C++もRUSTも初心者です。休日プログラマーなので頼れる方もおらず、
どなたかご教授ください。
以下のコードでは、HOGEクラスで定義したhoge関数を、AAA&BBBクラスに継承している単純なコードなのですが・・・
c++
1#include <string> 2 3class HOGE{ 4public: 5 void hoge(unsigned short ccc); 6}; 7 8void HOGE::hoge(unsigned short ccc){ 9 printf("VALUE = %d\n", ccc); 10} 11 12 13class AAA : public HOGE{ 14public: 15 unsigned short aaa; 16}; 17 18class BBB : public HOGE{ 19public: 20 unsigned short bbb; 21}; 22 23 24 25int main(){ 26 27 AAA obj; 28 29 obj.aaa = 10000; 30 obj.hoge(obj.aaa); 31 32 BBB obj2; 33 34 obj2.bbb = 20000; 35 obj2.hoge(obj2.bbb); 36} 37 38//実行結果 39VALUE = 10000 40VALUE = 20000 41
この継承されるhoge関数の内容自体をAAAクラス、BBBクラスで異なる内容にしたい、かつ宣言はHOGEクラスにて行いたい場合には
どのように記述したらよいでしょうか。
イメージとしてはRUSTのpub trait HOGE内の関数を「impl HOGE for AAA」のように使用する場合と同じ記述をc++でしたいです。
拙い説明で恐縮ですが、よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/19 11:49
2020/09/19 16:45
2020/09/24 03:54
2020/09/24 08:09
2020/09/25 09:12
2020/09/25 09:33