可能性の重複:
Do the parentheses after the type name make a difference with new?C++ - どちらが「新車」または「新車()」を使用することになっていますか?
こんにちはすべて、ここで
class Car
{
public:
Car() : m_iPrice(0) {}
Car(int iPrice) : m_iPrice(iPrice) {}
private:
int m_iPrice;
};
int _tmain(int argc, _TCHAR* argv[])
{
Car car1; // Line 1
Car car2(); // Line 2, this statement declares a function instead.
Car* pCar = new Car; // Line 3
Car* pCar2 = new Car(); // Line 4
return 0;
}
は私の質問です:
私たちは車のオブジェクトを定義するとき、私たちが使用する必要がありますライン2ではなくライン1。 私たちは新しいオブジェクトで、Line 3とLine 4の両方がVC8.0のコンパイラを渡すことができます。 しかし、3行目または4行目の方がいいですか?または、3行目は
はあなたの線が等価である。この場合
議論されてきたが、新しいとの違いを生みますか? ](@stackoverflow.com/questions/620137/do-the-parentheses-after-the-type-name-make-a-difference-with-new) – birryree
@birryree:一般的にはい(違いは値の初期化とゼロ初期化)。この特定のインスタンスでは、いいえ。なぜなら、Carは明示的に定義されたデフォルトのコンストラクタを持つ非常に単純なクラス(intメンバのみ)であるからです。 –
@Martin - あなたは質問に答えていますか?それは私がリンクしている質問のタイトルです。:) – birryree