成员初始化列表string
时间: 2023-10-01 09:03:51 浏览: 45
成员初始化列表是用于初始化类的成员变量的一种方式。它可以在构造函数中使用,以逗号分隔的形式在构造函数的参数列表后面提供初始化值。例如,如果我们有一个名为`Person`的类,它有两个成员变量`name`和`age`,我们可以在构造函数中使用初始化列表来初始化它们,如下所示:
```
class Person {
public:
Person(const std::string& name, int age)
: name(name), age(age) {
}
private:
std::string name;
int age;
};
```
在上面的代码中,`name`和`age`都在构造函数的初始化列表中初始化,而不是在构造函数体内。这样做的好处是可以避免不必要的初始化和拷贝操作,提高代码效率。
相关问题
std::string 成员初始化
你可以使用成员初始化列表来初始化 std::string 类型的成员变量。成员初始化列表是在构造函数的初始化列表中使用冒号(:)和逗号(,)来表示的。下面是一个示例:
```cpp
class MyClass {
public:
MyClass(const std::string& str) : myString(str) {
// 构造函数的其他代码
}
private:
std::string myString;
};
```
在上面的示例中,myString 是一个 std::string 类型的成员变量。通过在构造函数的初始化列表中使用 myString(str),我们可以将传入构造函数的 str 参数的值初始化到 myString 成员变量中。
这样,在创建 MyClass 对象时,可以使用传入的字符串来初始化 myString 成员变量。
c++11 类成员初始化
在C++11中,类成员的初始化有几种方式可以使用。
1. 默认成员初始化:可以在类定义中为成员变量提供默认值。例如:
```cpp
class MyClass {
public:
int myInt = 0; // 默认初始化为0
std::string myString = "Hello"; // 默认初始化为字符串"Hello"
};
```
2. 成员初始化列表:可以在构造函数的初始化列表中为成员变量赋值。例如:
```cpp
class MyClass {
public:
int myInt;
std::string myString;
MyClass() : myInt(10), myString("World") {
// 构造函数体
}
};
```
3. 委托构造函数:一个构造函数可以调用另一个构造函数来完成成员变量的初始化。例如:
```cpp
class MyClass {
public:
int myInt;
std::string myString;
MyClass() : MyClass(10, "World") {
// 构造函数体
}
MyClass(int i, const std::string& str) : myInt(i),