c++ - 使用单成员结构作为成员本身

标签 c++ visual-c++

我使用结构来公开 typesafish 接口(interface),例如:

class IFoo
{
  virtual HRESULT bar(struct _BAR * arg) = 0;
}

在幕后,这个接口(interface)的每个实现都定义了自己的结构:

struct _BAR { Baz baz };

我目前以这种方式调用许多分配函数:

HRESULT allocate(Baz ** baz);
_BAR * bar;
ret = allocate( (Baz **) &bar );

是否可以通过在 struct _BAR 定义中添加数据,使用类型更安全的转换调用它们,例如 static_cast

最佳答案

正如@Quentin 在评论中提到的,这违反了 ODR(一个定义规则)。我不确定你的目的是什么,但你可以考虑两件事来满足你的需要。一种是使用模板。另一种是使用void *。但我只是猜测,希望对您有所帮助。

关于c++ - 使用单成员结构作为成员本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53852667/

相关文章:

c++ - std::fstream 错误

c++ - 限制对 C++ 构造函数和析构函数的访问

c++ - 在构造函数中设置 C++ 类 char*

c++ - 如何在带有背景图像的小部件上制作不可见按钮?

c - GUI 到 Windows 服务

c++ - 关于C++模板语法的一个问题(STL库源码)

c++ - 在派生类中强制执行正确的虚函数定义

c++ - VC++。net中执行文件读取代码时出错

c++ - 如何在 MFC 对话框中显示网格线? (不是在设计中而是在运行对话框时)

c++ - <BadPtr> 循环出错