gpt4 book ai didi

c++ - 用C++写一个代理类

转载 作者:行者123 更新时间:2023-11-30 00:44:48 25 4
gpt4 key购买 nike

我有一个 C++ 包装器类,它封装了一些硬件提取:

class DeviceWrapper
{
private:
PhysicalDevice mDevice;
};

有多种访问设备的类,其中大多数接受底层设备作为它们的第一个参数,如下所示:

void someFunc(PhysicalDevice & device);

所以我目前在我的包装类中有以下 getter 方法:

PhysicalDevice & DeviceWrapper::getPhysicalDevice()
{
return mDevice;
}

我这样使用它:someFunc(myWrapper.getPhysicalDevice());

但是,这看起来有点麻烦。有没有一种方法可以定义某种返回此设备引用的运算符,然后我基本上可以在需要引用 PhyscialDevice 的地方使用对包装类的引用。

最佳答案

有两种常见的表达方式:

  1. 提供隐式转换:

class DeviceWrapper
{
operator PhysicalDevice&() { return mDevice; }
private:
PhysicalDevice mDevice;
};

  1. 将函数重新实现为方法(出于另一个答案中提到的原因,我赞成这种方法):

class DeviceWrapper
{
auto someFunc() { return ::somefunc(mDevice); }

private:
PhysicalDevice mDevice;
};

关于c++ - 用C++写一个代理类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46848007/

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