質問する
995 次
2 に答える
2
vertices
およびedges
はコンストラクター内のローカル変数であり、同じ名前のインスタンス変数をシャドウします。インスタンス変数を空のハッシュ テーブルに初期化するには、コンストラクターからそれらの変数を削除するだけです。
Markovgraph::Markovgraph() {
// note: no declarations of vertices and edges here
vertices.set_empty_key(NULL);
edges.set_empty_key(NULL);
vertices["a"] = 10000;
vertices["b"] = 573;
std::cout << vertices["a"] << std::endl;
std::cout << vertices["b"] << std::endl;
std::cout << vertices.size() << std::endl;
}
これが機能するのは、コンストラクターがインスタンス変数の既定のコンストラクターを暗黙的に呼び出すためです。
于 2013-10-10T14:05:37.330 に答える