在 C++ 中使用 this 指针初始化一个 class 对象
Initialize a class object with the this pointer in C++
在 C++ 中,我想使用另一个 class 方法的结果初始化(或更改)一个 class 对象。我可以使用 this 指针吗?有没有更好的方法?
虚拟示例:
class c_A {
public:
int a, b;
void import(void);
};
class c_B {
public:
c_A create(void);
};
void c_A::import(void) {
c_B B;
*this = B.create();
};
c_A c_B::create(void) {
c_A A;
A.a = A.b = 0;
return A;
};
没有问题。成员函数void import(void);
不是常量function.In这条语句
*this = B.create();
使用了默认的复制赋值运算符。
Is there a better way?
更好的方法是不使用成员函数而只对 class 的对象使用赋值语句,例如
c_A c1 = { 10, 20 };
c1 = c_B().create();
在 C++ 中,我想使用另一个 class 方法的结果初始化(或更改)一个 class 对象。我可以使用 this 指针吗?有没有更好的方法?
虚拟示例:
class c_A {
public:
int a, b;
void import(void);
};
class c_B {
public:
c_A create(void);
};
void c_A::import(void) {
c_B B;
*this = B.create();
};
c_A c_B::create(void) {
c_A A;
A.a = A.b = 0;
return A;
};
没有问题。成员函数void import(void);
不是常量function.In这条语句
*this = B.create();
使用了默认的复制赋值运算符。
Is there a better way?
更好的方法是不使用成员函数而只对 class 的对象使用赋值语句,例如
c_A c1 = { 10, 20 };
c1 = c_B().create();