【发布时间】:2020-09-12 15:34:08
【问题描述】:
我注意到(对我而言)奇怪的行为。如果我初始化一个 DerivedClass 并将另一个类的指针 (player) 传递给它,那么它会接收到正确的指针值。但是,如果我随后尝试使用该指针,稍后在check_pointer_of_player() 中,值会发生变化。我不明白这种行为,我想知道如何实现目标:在DerivedClass 中使用player 的功能。
class DerivedClass : public ParentClass {
protected:
Player* player;
public:
DerivedClass(Coord p, Player* player) : ParentClass(p) {
std::cout << "During intialization the pointer value is: " << player << "\n";
player = player;
}
void check_pointer_of_player() {
std::cout << "Now the pointer value is: " << player << "\n";
}
正如我所写,在初始化期间指针值是正确的,但后来当我调用这个类的函数check_pointer_value() 它返回一个不同的值。下面是可见的输出。
初始化时指针值为:0x7f908f558710
现在指针值为:0x7fff41140004
我如何仍然实现我的目标。
【问题讨论】:
标签: c++ class object pointers reference