我们在项目中遇到包括登录表单在内的麻烦。 我们按照http://cppcms.com/wikipp/en/page/cppcms_1x_forms
中的步骤操作这是表格的定义:
struct SignInFormInfo : public cppcms::form {
/* Error 1 */ cppcms::widgets::text user_name;
/* Error 2 */ cppcms::widgets::password password;
cppcms::widgets::submit submit;
SignInFormInfo() {
user_name.message("User name");
password.message("Password");
submit.value("Sign in");
add(user_name);
add(password);
add(submit);
// Restrictions
user_name.limits(1, 31);
password.non_empty();
}
};
我们得到了这些构建错误:
错误1:类型'cppcms :: widgets :: text'必须实现继承 纯虚方法'cppcms :: base_form :: load'
错误2:类型'cppcms :: widgets :: password'必须实现 继承了纯虚方法 'cppcms ::部件:: base_widget :: render_input'
我们也在cppcms库“cppcms / form.h”中得到错误 “booster / hold_ptr.h”关于变量“_data”是私有的。
我们正在使用1.0.3版本的CppCMS。
感谢您的帮助
答案 0 :(得分:0)
应该使用哪种“加载”方法?
“base_html_input”类中的一个或“base_text”中的一个。有两个名为“load”的方法来自不同的类(并且都来自同一个类!),它们都是同一个类的基类。编译器根本不知道要使用哪一个。最好的办法是实现自己的“负荷”。
widgets::text::load(param) //actually missing in CPPCMS
{
//wich one of the 2 methods has to be called.. or both have to be called?
base_html_input.load(param)
base_text input.load(param);
}
这可能是你正在使用的库的一个设计缺陷(除非某处有一个“widgets :: text”对象的工厂,即返回具有正确实现的对象,无论如何,本教程的文章都是错误的。)