C++类成员初始化是一种在创建对象时给类成员变量赋值的方式,它通常发生在构造函数中。在C++中,类成员初始化方式有三种:默认构造函数初始化、成员初始化列表和构造函数初始化。下面我们将分别详细介绍这三种方式。
默认构造函数初始化
对于没有定义构造函数的类,C++编译器会为其自动生成默认构造函数,在这种情况下,编译器会使用默认值为成员变量赋初值。例如,下面的代码就使用了默认构造函数初始化:
#include <iostream>
using namespace std;
class Example {
public:
int x; // x的值为0
string str; // str的值为空字符串
void Display() {
cout << "x = " << x << endl;
cout << "str = " << str << endl;
}
};
int main() {
Example ex;
ex.Display(); // 输出:x = 0,str = ""
return 0;
}
成员初始化列表
成员初始化列表是一种显示的初始化成员变量的方式,它的格式为在构造函数后面紧跟着成员初始化列表,列表中的每个成员变量都以冒号(:)开始,每个成员变量之间用逗号(,)分隔。例如:
#include <iostream>
#include <string>
using namespace std;
class Example {
public:
int x;
string str;
// 在初始化列表中给成员变量赋初值
Example(int a, string s) : x(a), str(s) {}
void Display() {
cout << "x = " << x << endl;
cout << "str = " << str << endl;
}
};
int main() {
Example ex(10, "Hello");
ex.Display(); // 输出:x = 10,str = "Hello"
return 0;
}
在上面的示例中,我们定义了一个Example类,它有两个成员变量x和str,在构造函数中使用了成员初始化列表给x和str赋初值。
构造函数初始化
对于有参数的构造函数,我们可以直接在构造函数中给成员变量赋值。例如:
#include <iostream>
using namespace std;
class Example {
public:
int x;
Example(int a) {
x = a;
}
void Display() {
cout << "x = " << x << endl;
}
};
int main() {
Example ex(10);
ex.Display(); // 输出:x = 10
return 0;
}
在上面的示例中,我们定义了一个Example类,它有一个成员变量x,并且定义了一个参数为a的构造函数,在构造函数中直接给x赋值。
通过上面的介绍,我们可以看出,在C++中,我们可以通过以上三种方式来初始化类的成员变量,在使用时应根据实际场景选择最合适的方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++类成员初始化的三种方式 - Python技术站