繁体   English   中英

C ++指向对象作为类成员的指针

[英]C++ Pointer to Object as Class member

我试图让两个不同的类相互交互,因为我在一个类中有一个指向另一类对象的指针,该指针在构造函数中指定。 到目前为止,交互工作正常,在终端上打印时,我可以更改指向对象的参数,并且可以看到更改。 但是,当我尝试从该对象获取参数并尝试通过指向该对象的类将其输出到终端时,对于一个我知道的Int,我只会得到一个零值,这是调试输出的原因,不是如果直接调用,则为零。 我会给你一个代码示例:

A类:

class Spieler
{
    private:
        int score;
        Schlaeger *schlaeger;
        int adc_wert;
        int channel;


    public:

        Spieler(int x, Schlaeger &schl, int adc_wert_c=0, int channel_c=0 )
        {
            score=x;
            schlaeger=&schl;
            adc_wert=adc_wert_c;
            channel=channel_c;
        }
    //....
        void set_schl(Schlaeger &schl){ schlaeger=&schl;}
        int getPosY(){ schlaeger->getSchlaeger_pos_y();}
        int getPosX(){ schlaeger->getSchlaeger_pos_x();}
        void setPosY(int y){ schlaeger->set_pos_y(y);}      

        void schlaeger_zeichen(){
            schlaeger->schlaeger_zeichen();
        }

        void schlaeger_bewegen(){
            schlaeger->schlaeger_bewegen(getADC());
        }
//...

};

B级:

class Schlaeger
{
    private:
        int schlaeger_pos_x;
        int schlaeger_hoehe;
        int schlaeger_pos_y;
    public:

        Schlaeger(int x=0, int h=5, int pos_y=15)
        {
            schlaeger_pos_x=x;
            schlaeger_hoehe=h;
            schlaeger_pos_y=pos_y;
        }

        int getSchlaeger_pos_x()
        {
            return schlaeger_pos_x;
        }
        int getSchlaeger_pos_y()
        {
            return schlaeger_pos_y;
        }
        int getSchlaeger_hoehe()
        {
            return schlaeger_hoehe;
        }
        void set_pos_y(int new_y)
        {
            schlaeger_pos_y=new_y;
        }


};

对更改方法的调用起作用,我可以看到这些更改,并且可以在调试输出中看到它。

您没有在getter中返回值

int getPosY(){ schlaeger->getSchlaeger_pos_y();}

应该

int getPosY(){ return schlaeger->getSchlaeger_pos_y();}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM