我有自己的字符串类(DinString),没什么特别的。
我想知道是否可以做这样的事情

DinString a= "Helo World";

bool Func(DinString string);

Func("test");

最佳答案

是的。只需实现一个适当的(non-explicit!)构造函数即可:

class DinString {
public:
    DinString( const char *s ) {
        // ...
    }
};

请注意,如果您像这样“链接”多个构造器,则此方法将无效。例如,以下操作无效:
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!")); !

08-06 04:11