2

プロジェクトにログインフォームを含めるのに問題があります。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 :: widgets :: base_widget ::render_input'を実装する必要があります

また、cppcmsライブラリ「cppcms/form.h」および「booster/hold_ptr.h」で、変数「_data」がプライベートであるというエラーが発生します。

CppCMSの1.0.3バージョンを使用しています。

ご協力いただきありがとうございます

4

1 に答える 1

0

Wichの「ロード」方法を使用する必要がありますか?

「base_html_input」クラスからのもの、または「base_text」からのもの。異なるクラスに由来する(そして両方とも同じクラスから派生した!)「load」という名前の2つのメソッドがあり、どちらも同じクラスの基本クラスです。コンパイラは、どちらを使用するかを単純に知りません。最良のことは、自分自身に「負荷」を実装することです。

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」オブジェクトのファクトリがどこかにある場合を除き、正しい実装でオブジェクトを返します。とにかく、チュートリアルの記事は間違っています)。

于 2013-01-22T19:49:00.573 に答える