类成员的类型不应为 void*
6.4.5 ID_forbidMemberVoidPtr
与接口相关的数据类型应保持精确,不应将成员类型设为 void*,尤其是非 private 成员的类型,更不应设为 void*。
在 C++ 代码中,如果成员需要面对多种不同类型的数据,应合理使用模板机制。
示例:
class A {
public:
void* dat; // Non-compliant
....
};
应改为:
template <class T>
class A {
public:
T* method_about_dat();
private:
T* dat; // Compliant
....
};