あれ、叩かれてる。説明あかんかったか。

よし、じゃあXXXとか言わずにuppercaseで書いたるか。

struct MyString : public std::string{
void uppercase();
};

ほれ、出来た。これでMyStringの大文字化はラクショーさ。

ああだけど、std::stringを使ってる部分もあるんだった。
これも大文字化しないといけない。

継承で機能追加
MyString mystr=std_string_variable;
mystr.uppercase();
std_string_variable=mystr;

外部関数で機能追加
uppercase(std_string_variable);

これでどうやろう?

基本的に継承は仮想関数のオーバーライドのためか
protectedなメンバに触りたい時くらいにしか使うべきではない。