我有自己的字符串class(DinString),没什么特别的.我想知道可以做这样的事情
DinString a= "Helo World";
bool Func(DinString string);
Func("test");
Run Code Online (Sandbox Code Playgroud)
是的.只需实现一个合适的(非explicit!)构造函数:
class DinString {
public:
DinString( const char *s ) {
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,如果您链接'多个这样的构造函数,这将不起作用.例如,以下内容不起作用:
class DinString {
public:
DinString( const char *s ) {
// ...
}
};
class FooString {
public:
FooString( const DinString & ) { }
};
void f( const FooString &) { }
f( "hello" ); // doesn't call FooString(DinString("hello!")); !
Run Code Online (Sandbox Code Playgroud)