gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 23:19:33 25 4
gpt4 key购买 nike

我试图让两个不同的类相互交互,因为我在一个类中有一个指向另一个类的对象的指针,该指针在构造函数中指定。到目前为止,交互有效,我可以更改指向对象的参数,并且可以看到更改,因为我正在终端上打印它。但是当我尝试从这个对象获取一个参数并尝试通过指向它的类将它打印到终端时,我只得到一个 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();}

关于C++ 指向对象的指针作为类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com