【发布时间】:2018-12-14 15:48:13
【问题描述】:
所以我已经学习 C++ 几个月了,我的 IDE 遇到了一个奇怪的事件。 (Jetbrains CLion FTW!)
我的 IDE 可以为成员生成 getter,自动确定类型、是否为 const 以及其他关键字。显然一代并不完美,所以我发现自己通常不会使用这个功能。所以目前我专注于需要使用句柄的 Windows API。因此,当我为句柄(HINSTANCE、HWND、HDC 等)生成 getter 时,会发生一些非常奇怪的事情。
假设我有一个成员定义如下:
HDC m_hDeviceContext;
然后当我的 IDE 生成一个 getter 时,它看起来像这样:
const HDC__* getDeviceContext() const...
我很困惑为什么类型是 HDC__。它是一个指针是有道理的,因此在 winnt.h 中将句柄声明为指针(typedef struct name##__ *name)。
谁能告诉我为什么会发生这种情况?这是我的 IDE 的错误吗,因为每当我看到返回句柄的 getter 示例时,它们通常只是直接返回该句柄类型。
【问题讨论】:
-
它看起来像你的 IDE 的一个错误。或者也许是某个地方的设置。或者至少是设计缺陷(如果不是设置)。
-
你可能是对的,CLion 是相当新的。它应该产生什么?
-
我当然希望它生成
HDC getDeviceContext() const {return m_hDeviceContext;}。 -
这更有意义,谢谢。