0

在我的系统中,我需要将一个类的成员发送到一个外部对象进行处理(我们称之为 a processor)。成员被processor暂时保留,并将根据某些条件从处理器中删除。nullptr如以下示例所示,成员设备和处理器由 DeviceContainer 拥有,因此从我可以看出访问处理器内部不应该有问题。但是存储原始指针列表似乎通常是一个坏主意,所以我想问一下在DeviceProcessor下面列出的结构中存储指针数组可能是更好的选择。

    class DeviceA : public DeviceBase
{};

class DeviceB : public DeviceBase
{};

class DeviceContainer 
{
public: 
    DeviceContainer()
    {
        processor.addDevice(&a);
        processor.addDevice(&b);
    }
    void process()
    {
        processor.doSomethingWithDevices();
    }
private:
    DeviceA a;
    DeviceB b;
    DeviceProcessor processor;
};

struct DeviceProcessor
{
public:
    void addDevice(DeviceBase* d)
    {
        device.push_back (d);
    }

    void doSomethingWithDevices()
    {
        for (auto d : devices)
            d->doSomething();
    }
private:
    std::vector<DeviceBase*> devices;
};
4

0 回答 0