をコンストラクタを呼び出さずにオブジェクトのインスタンス化。は、私はC++での新たなんだと私は現在、コンストラクタについて学んだC++で
1- Dog dog;
2- Dog dog = Dog();
3- Dog *dog = new Dog;
4- Dog *dog = new Dog();
5- Dog dog();
:
class Dog{
Dog(){
std::cout << "Constructor called!
}
};
は、私は(私は間違っていない場合)、我々は、例えば、オブジェクトを作成することができますC++では異なる方法があることを知っている:私はコンストラクタを持つクラスの犬を持っていると言いますしかしここには事があります:1から4までのステートメントはすべてコンストラクタを呼び出しますが、ステートメント番号5はそうではありません。理由を理解することができます。
あなたは第五文は、クラスのコンストラクタを呼び出すことはありません、なぜ任意のアイデアを持っていますか?おかげさまで
5は、関数のプロトタイプで、最も厄介な解析を参照してください。 – sergej
5はDogオブジェクトを作成しません。 – sergej
@sergej答えとしてコメントを追加する必要があります。あまりにも遅い。 HolyBlackCatはあなたにそれを打つ。 –