我有一个 C++ 类,如下所示:
class some_class {
protected:
decide_later some_variable;
public:
void some_random_function();
};
void some_class::some_random_function() {
decide_later another_variable;
}
问题是,在创建类的实例之前,我不知道 some_variable 将是什么变量类型。我想要做的是如下所示:
some_class class_instance(std::string);
这将设置decide_later 使用std::string(或int,或double,或任何它被告知使用的)。此外,如果我可以稍后在属于该类的其他函数中使用decide_later 作为变量类型,那就太好了。例如,在函数 some_random_function() 中。
我曾尝试使用 boost::any 来做到这一点,但它似乎只适用于数字类型。此外,我认为如果我可以实际设置实际的变量类型,效率会更高。
这可能吗?
最佳答案
您正在寻找模板。像这样声明你的类:
template <typename T> class some_class {
protected:
T some_variable;
public:
void some_random_function() {
T another_variable;
}
};
并实例化它:
some_class<std::string> class_instance();
关于c++ - 在实例化期间为 C++ 类变量设置变量类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10561542/