gpt4 book ai didi

c++ - 在 C++ Primer 的构造函数中,成员的初始值(如 'contents(ht * wd, c)')如何工作?

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:42 25 4
gpt4 key购买 nike

<分区>

我读过《C++ Primer》这本书。在 7.3.1 节中:有一个 Screen 类的构造函数:

class Screen {
public:
typedef std::string::size_type pos;
Screen() = default;
Screen(pos ht, pos wd, char c): height(ht), width(wd),
contents(ht * wd, c) { }
char get() const { return contents[cursor]; }
inline char get(pos ht, pos wd) const;
Screen &move(pos r, pos c);
private:
pos cursor = 0;
pos height = 0, width = 0;
std::string contents;
};

在重载的构造函数中:

Screen(pos ht, pos wd, char c): height(ht), width(wd),
contents(ht * wd, c) { }

contents(ht * wd, c) 的初始值是多少?它是如何工作的?
在第 7.1.4 节中,指出:

The constructor initializer is a list of member names, each of which is followed by that member’s initial value in parentheses (or inside curly braces).

而且我知道 string 有一种方法 string s(n, 'c') 来初始化一个字符串,例如 string s(10, ' c').
但是在构造函数成员初始化中如何利用 string 构造函数呢?
提前致谢。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com