我正在创建一个小型事实网站,作为使用cppcms从c ++创建一个非常高效的网站的实验。
我在决定如何为要访问的模板创建base_content类时遇到问题。
在我的类结构中,我创建了一个名为Fact的容器类,它使用getter和setter来管理变量,继承自IContainer。
为了避免将数据复制到一个单独的类中,我必须在IContainer中继承cppcms :: base_content并在Fact中公开私有变量(因此模板可以直接访问它们)。
有没有办法可以从单独的内容类创建和访问容器类中数据的指针,或者(更好的是)从模板中调用事实的getter(返回const int或const string) ,Fact对象充当内容类。
如果需要澄清,请询问。
答案 0 :(得分:1)
为什么不在模板中使用getter:
class Fact : public cppcms::base_content {
public:
std::string get_foo() const;
void set_foo(std::string const &v) const;
private:
std::string foo_;
};
在模板中
<%= get_foo() %>
在任何情况下,如果你有许多带有getter / setter的字段只能执行“get”和“set” 你可能应该考虑将它们公开,而不是使用getter / setter。