我希望你能在编译时轻松构建一个字符串数组。为了测试,我组合了一个名为Strings
的类,它具有以下成员:
Strings();
Strings(const Strings& that);
Strings(const char* s1);
Strings& operator=(const char* s1);
Strings& operator,(const char* s2);
使用此方法,我可以成功编译类似以下代码的程序:
Strings s;
s="Hello","World!";
s="Hello"
部分调用了 operator=
,返回一个 Strings&
,然后为 "World!"
调用了 operator,
。
我无法让它在 MSVC 上工作(还没有尝试其他编译器)。
Strings s="Hello","World!";
我在这里假设
Strings s="Hello"
会调用复制构造函数,然后一切都会像第一个例子一样运行。但是我收到了错误信息:error C2059: syntax error : 'string'
然而,下面的代码可以正常工作:Strings s="Hello";
我知道复制构造函数至少适用于一个字符串。你有什么想法吗?我真的很希望第二种方法能够工作,以使代码更加简洁。