我有以下内容:
class MyClass
{
private:
int my_data;
MyClass* my_pointer;
public:
MyClass():
my_data(0),
my_pointer(this)
{}
MyClass(const int& data):
my_data(data),
my_pointer(this)
{}
};
然而,当我跑
时std::vector<MyClass> vec(10);
int n = {0};
std::generate(vec.begin(), vec.end(), [&n] { return MyClass(n++); });
十个实例的每个my_pointer都具有相同的值。如何更正此代码,以便my_pointer指向该字段所在的实例?