我在调试程序时遇到麻烦。由于某些奇怪的原因,我无法在链接列表中打印订阅的值。

/*Player.h
#ifndef PLAYER_H
#define PLAYER_H

class Player
{
    double  subscription; /*value to be stored*/
public:
    Player(); /*default constructor*/
    Player(double); //double
    ~Player();
    double getSubscription(){ return subscription; }
};
#endif

最佳答案

看来您的问题出在上一行的SoccerClub.cpp中:

player = &Player(subscription); /*store the subscription into player using the constructor*/


这将创建一个Player对象,并将该对象的地址分配给指针播放器,但是在完整表达式的末尾(下一行),此对象超出范围并被破坏。这没有使用您之前通过malloc分配的内存。

删除malloc并使用:

player = new Player(subscription);


只需确保稍后调用delete即可销毁此对象并释放内存。

关于c++ - 链表不打印值?我究竟做错了什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35466987/

10-11 22:38
查看更多