假设我有一个名为dummy的函数,其定义如下:
void dummy(CMyString& mystr)
{
mystr.print(); //show
}
CMyString将是我自己使用字符数组的字符串实现。
int main()
{
dummy("This is a test!");
return 0;
}
我想打印以下程序:“这是一个测试!”。
这可能吗?
最佳答案
是的,您只需要向explicit
提供一个非CMyString
转换构造函数:
class CMyString
{
public:
CMyString(const char* x);
//.....
};
当然,实现
CMyString::print
方法。之后,您需要将参数更改为void dummy(const CMyString& mystr)
(并将
print
方法标记为const
),因为您不能将临时绑定(bind)到非const引用。关于c++ - 从预定义类型转换为自己的CMyString,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13248218/