c++类内含有很多成员(数据类型不同)时,构造函数为每个成员初始化的话要写很长,有没有比较方便的方法来写构造函数
想到的办法是用类成员指针,但是不知道该怎么获取偏移量(令指针自动指向下个元素位置)
例如
class MyClass {
public:
//有26个成员
int a;
double b;
char c;
//...
int z
};
望采纳
在 C++ 中,如果类内含有很多成员,构造函数为每个成员初始化时可能会写得很长。为了更方便地实现构造函数,您可以使用类成员指针来指向类成员,然后通过成员指针来获取偏移量并实现初始化。
例如,如果您想要初始化一个名为 MyClass 的类,该类中包含三个成员 a、b 和 c,分别为 int、double 和 string 类型,那么您可以使用以下代码来实现构造函数:
class MyClass {
public:
// 定义类成员指针
int *a;
double *b;
std::string *c;
// 构造函数
MyClass(int a_val, double b_val, const std::string& c_val) {
// 获取成员指针的偏移量,并初始化每个成员
a = &this->a;
b = &this->b;
c = &this->c;
// 使用成员指针进行初始化
*a = a_val;
*b = b_val;
*c = c_val;
}
};