我真的不是要压倒它,因为我知道这是不可能的(除非我自己做)。但我如何以这样的方式做到这一点
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()
谢谢!
答案 0 :(得分:1)
我能想到的唯一解决方案是定义my::string
(在内部存储std::string
以提供基本字符串功能)并定义:
my::string(const char*);
为了允许来自C样式字符串和my::string
的隐式转换,然后定义:
my::string& operator=(const char*);
实现调用Compile
函数。