私は何年も C++ を扱っていませんでしたが、今ではテスト付きの C++ プロジェクトを作成しています。
デバッグを開始すると、変数がデフォルトでゼロで初期化されていないという奇妙なことがわかりました。たとえば、クラスの初期化されていない変数 (unsigned int) を監視すると、その値 3452816845 が期待される zeo に含まれていることがわかります...これは、単体テストでエラーを引き起こします。私はそのような初期化を使用します:
TEST_METHOD(TestPlus)
{
Entity* entity = new Entity();
entity->mCreateOperator(entity->Plus);
entity->SetContactValue(1);
entity->SetContactValue(2);
entity->mProcessLast();
Assert::IsTrue(entity->GetContactValue((1+2));
}
私はエンティティクラスのデフォルトのコンストラクタを持っています:
Entity::Entity(void) {/*some internal array initialization*/}
new キーワードを使用すると、すべてのクラス変数が C++ ランタイムによって 0 で初期化されると考えました。
私は何かを見逃しましたか?