【发布时间】:2021-08-06 20:14:44
【问题描述】:
我正在使用 C++ 为一块内存映射硬件开发一个驱动程序,并且我定义了一个代表这个设备的类。它看起来像这样:
class device
{
method1();
method2();
private:
device_register reg1;
device_register reg2;
}
该类有两个文件:device.cpp 和 device.h。成员变量代表设备本身的实际寄存器。现在我想在设备本身上定义更多不是实际寄存器的成员,但我不能在类中定义它们,因为如果我这样做,它们将在设备的内存映射位置定义,该位置可能包含其他设备/寄存器.如果我将它们定义为公共,则会破坏标准布局,并且该类将不再起作用。
所以我所做的就是将它们定义为类定义之外的全局变量。问题是如果我定义了多个对象,它们都会共享这些全局变量,但我希望每个对象都有自己的,我该怎么做呢?
【问题讨论】:
-
你能有两个子类:
device_hw和device_sw,然后是一个device类,每个子类都有一个吗? -
是吗?你会在哪里使用 c++ 驱动程序?
-
@AdrianMole 我可以,但其他答案更容易。不过还是谢谢。
标签: c++ object memory-mapped-io