假设我有一个名为 dummy 的函数,其定义方式如下:
void dummy(CMyString& mystr)
{
mystr.print(); //show
}
CMyString 将是我自己使用字符数组实现的字符串。
int main()
{
dummy("This is a test!");
return 0;
}
我想打印以下程序:“这是一个测试!”。这可能吗?
假设我有一个名为 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
),因为您不能将 temp 绑定到非常量引用。
当然。您只需要定义一个构造函数CMyString
,它将一个 s 数组char
或一个指向的指针char
作为其唯一参数。像这样:
class CMyString
{
public:
CMyString(const char* str)
{
// Initialise CMyString with str
}
};