假设我有一个名为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/

10-10 16:17