0

cppcms を使用して C++ から非常に効率的な Web サイトを作成するための実験として、小さなファクト サイトを作成しています。

テンプレートがアクセスする base_content クラスを作成する方法を決定する際に問題があります。

私のクラス構造では、Fact と呼ばれるコンテナー クラスを作成しました。このクラスは、getter と setter を使用して変数を管理し、IContainer から継承します。

データを別のクラスにコピーしないようにするために、IContainer で cppcms::base_content を継承し、Fact でプライベート変数を公開する必要がありました (テンプレートがそれらに直接アクセスできるようにするため)。

別のコンテンツ クラスからコンテナー クラス内のデータへのポインターを作成してアクセスする方法、または (なお良い) テンプレート内から実際のゲッター (const int または const string のいずれかを返す) を呼び出す方法はありますか?コンテンツ クラスとして機能するファクト オブジェクト。

説明が必要な場合は、お尋ねください。

4

1 に答える 1

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() %>

いずれにせよ、「get」と「set」のみを行う getter/setter を持つフィールドが多数ある場合は、おそらくそれらを公開し、getter/setter をまったく使用しないことを検討する必要があります。

于 2012-07-26T10:32:52.347 に答える