可能重复:
How to detect whether there is a specific member variable in class?
我正在为C ++库添加功能。一个派上用场的东西是检查一个结构中是否存在某个成员(它存在取决于库版本 - 遗憾的是库中没有“version”参数)。
以下是我想要做的简化示例:
struct options {
int option1;
std::string option2;
float option3; // might be included or not
options();
void random_method();
}
options::options() {
option1 = 1;
option2 = "foo";
if( EXISTS(option3) ) { // Pseudo-Code -> can I do that at all?
option3 = 1.1;
}
}
答案 0 :(得分:0)
您可以在父结构中实现纯虚函数,让孩子实现它。
struct Parent
{
virtual bool has_option(OPTION) const = 0;
};
struct Car : public Parent
{
bool has_option(OPTION op) const
{
bool result = false;
if (op == MOON_ROOF)
{
result = true;
}
return result;
}
};