std::deque を使用したクラス Table があります
class Table {
public:
Table():columns_(10) {};
private:
std::deque<Column> columns_
}
クラステーブルのみがクラス列を初期化できるようにしたいので、以下のようなことをします
class Column {
private:
int a_;
friend class Table;
Column(): a_(1) {};
}
コンパイル中に STL コンテナーは、Columns クラスのコンストラクターが private であると不平を言いますが、これは理解していますが、クラス Table だけがクラス Column を初期化し、STL コンテナー内でそれを使用できることを保証する別の方法があります。