【发布时间】:2019-06-27 13:43:54
【问题描述】:
我知道这是初始化,但我很困惑在每种情况下都使用字符串文字时调用了 2 个构造函数中的哪一个。它们都是复制构造函数吗?
string::string(const string& strString)
string::string(const char *szCString)
案例1:
string sSource("my string");
案例2:
const char *szSource("my string");
【问题讨论】:
-
你怎么看,为什么?
-
你可以在里面放一些打印语句,自己看看。或者用调试器运行它。
-
只需在调试器中运行即可。然后单步执行代码并亲自查看 - 或获取标准副本并阅读规则。
-
这不是一个“评论”,而是一个相当简单的问题。答案是什么?在获得帮助之前,您必须出示研究和想法的证据。我们不是你的仆人!
-
@softwarelover “它们都是复制构造函数吗?” 复制构造函数需要采用相同(或派生)的类型作为输入。所以问问自己:
std::string是从const char*派生的吗?
标签: c++ constructor initialization stdstring string-literals