我有两门班,即卡人和人。 驾驶员作为其成员之一,担任司机。 我想搬进一辆汽车,同时跟踪其位置,并将司机带进车内并到达车址。 然而,虽然这一工程是从内部进行的(我已印刷出计算值的数值),但当我试图从主人那里获取数据时,就没有任何东西。 I.e. 阵列的位置消失。 我很想知道,我设立这几类课程的方式是否错了——这是否是一个物体范围的问题?
我已做过简化,因此我只需要做。 希望>。 The Constructioner (") with non-zero.
class Car{
public:
Container(float=0,float=0,float=0);
~Container();
void move(float);
void getPosition(float[]);
void getDriverPosition(float[]);
private:
float position[3];
Person driver;
float heading;
float velocity;
};
class Person{
public:
Person(float=0,float=0,float=0);
~Person();
void setOffset(float=0,float=0,float=0);
void setPosition(float=0,float=0,float=0);
void getOffset(float[]);
void getPosition(float[]);
private:
float position[3];
float offset[3];
};
一些职能:
void Car::move(float time){
float distance = velocity*time;
location[0] += distance*cos(PI/2 - heading);
location[1] += distance*sin(PI/2 - heading);
float driverLocation [3];
float offset[3];
driver.getOffset(offset);
for (int i = 0; i < 3; i++){
driverLocation[i] = offset[i] + location[i];
}
driver.setPosition(driverLocation[0],driverLocation[1],driverLocation[2]);
}
void Car::getDriverPosition(float p[]){
driver.getPosition(p);
}
void Person::getPosition(float p[]){
for (int i = 0; i < 3; i++){
p[i] = position[i];
}
}
void Person::getOffset(float o[]){
for (int i = 0; i < 3; i++){
o[i] = offset[i];
}
}
主要:
Car * car = new Car();
car->move();
float p[3];
car->getDriverPosition(p);
当我印刷移动功能中的驾驶员时,我有实际的非零值。 我在主机中印刷第[]页,我得到的是零。
新发现的问题: 我每次都会发现有人叫走()个人班子,从而删除所有数据。 任何人都知道如何做到这一点? 我在任何地方都没有叫 des子,我如何防止它发生。