gpt4 book ai didi

c++ - 指针引用模式 - 常用?

转载 作者:行者123 更新时间:2023-11-30 01:29:01 26 4
gpt4 key购买 nike

在当前对象由其他包含对象操作的系统中,当传递对当前对象的引用时,链接似乎一直在继续......没有任何结束(对于下面的代码,Car ->myCurrentComponent->myCar_Brake->myCurrentComponent->myCar_Brake->myCurrentComponent ....).

ICarCar->myCurrentComponent->myCar_Brake 引用相同的地址,指向相同的对象。这就像 Car 包含 Brake 指的是 Car。

事实上,Car是唯一的对象,myCar_Brake和myCar_Speed只是引用(指向)它。这种引用和指针的使用是否正常?这种方法有什么潜在的问题吗?

Sample Code

class Brake
class C

class Car
{

public:

Car();
// Objects of type B and C.
Brake* myBrake;
Speed* mySpeed;

// Current component under action.

Component* myCurrentComponent;

}
/******************************/
// Constructor

Car::Car()
{
myBrake = new Brake(*this);
mySpeed = new Speed(*this);

myCurrentComponent = myBrake;
}

/******************************/
class Brake: public Component
{

public:

Brake(Car&);
// Needs to operate on A.
Car* myCar_Brake;

}

// Constructor
Brake::Brake(Car&)
{
myCar_Brake = Car;
}

/******************************/
class Speed
{

public:

Speed(Car&);

// Needs to operate on A.
Car* myCar_Speed;

}

// Constructor
Speed::Speed(Car&)
{
myCar_Speed = Car;
}

/****************************/

最佳答案

在您的对象图中使用循环引用没有根本问题,只要您了解这一点并且不要在不跟踪您遇到的对象的情况下尝试遍历您的对象图。要具体回答您的问题,对象之间的循环引用是比较常见的;例如,这是双向链表的工作方式。

关于c++ - 指针引用模式 - 常用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631042/

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