0

私はそれが不可能であることを知っているので、それをオーバーライドするつもりはありません(自分で作成しない限り)。しかし、私はどうすればこのようにそれを行うことができますか

strText = "bla bla";
strText.Compile();    //<--- I want this one to be implicitly call.

私はこのような方法を使用してそれを行うことができることを知っています

updateText(const std::string& text)
{
    strText = text;
    Compile();
}

また

std::string& updateText()
{
    Compile();      //hmm not sure about this. never try
    return strText;
}

しかし、他の手法はありますか?

strText = newText;   //<--automatically call the `Compile()`

??

諦める前に教えてくださいupdateText()

ありがとう!

4

1 に答える 1

1

私が考えることができる唯一の解決策は、定義(基本的な文字列機能を提供するためにmy::string内部に保存)して定義することです:std::string

my::string(const char*);

C スタイルの文字列 および からの暗黙的な変換を許可するには、次のようmy::stringに定義します。

my::string& operator=(const char*);

関数の呼び出しを実装しますCompile

于 2013-05-28T09:49:03.000 に答える