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 回答