hg_*_*git 0 c++ string constructor c++11
我要确保在施工期间弦线构件的尺寸是固定的.但是,他们可以在构建完成后增加它们的大小,然后在程序中,用户选择向其添加更多文本.
class A {
std::string name;
std::string desc;
int num;
public:
A(int, std::string, std::string);
.....
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做 -
A(int n, std::string name, std::string d) :
num(n),
name(name),
desc(d)
{
....
}
Run Code Online (Sandbox Code Playgroud)
我将不得不resize()在构造函数体内调用.这意味着在构造期间的某个时间存在完整的弦长.假设我希望初始大小为5,并且用户传递20个字符串,在构造期间和之前resize(),字符串将包含20个字符,对吧?
现在我正在考虑这样做 -
A(int n, std::string name, std::string d) :
num(n)
{
name = name;
desc = d;
name.resize(5);
desc.resize(5);
....
}
Run Code Online (Sandbox Code Playgroud)
但这会是一样的吗?
我应该调用resize()传递的参数本身吗?还是有更好的方法..
那样的构造函数怎么样:
A::A(int n, const std::string &name, const std::string &d) :
n(n), name(name, 0, 5), d(d, 0, 5)
{
}
Run Code Online (Sandbox Code Playgroud)
字符串永远不会被复制.它们通过引用获取,并且使用最多前5个字符构造副本.
它使用子串构造函数(数字3).
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |