• ベストアンサー

オブジェクトをデフォルトコンストラクタでnewする際の()の指定について

オブジェクトをnewしてデフォルトコンストラクタを 呼び出す際の記述には以下の二通りがあると思いますが、 どちらの方を選択すべきでしょうか? 単なるスタイルの問題なのでしょうか? それとも厳密には挙動が違ったりするのでしょうか? ClassA* a = new ClassA; ClassA* a = new ClassA();

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どっちでもかまいません。 スタイルの問題です。 引数があるときとの統一のため、僕は()をつけてます。

toshiaki33
質問者

お礼

ありがとうございます。 僕も()をつけるようにします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コンストラクタの引数の中のnew?

    はじめまして☆ java初心者ですが、意味がわからなくて困っています。 オブジェクトをnewする時、たまにコンストラクタの引数部分に newの記述がある時があるのですが、これはどういう意味でしょうか? (何のオブジェクトを作成しているのでしょうか?) よかったら、教えてください。

    • ベストアンサー
    • Java
  • javascriptのObject()コンストラクタについて質問です。

    javascriptのObject()コンストラクタについて質問です。 var obj = new Object(); var obj2 = Object(); console.log(obj === obj2)//false いつも質問ばかり恐縮です。。。 どこかのサイトでこの2つは等価みたいな記事を読んだような気がするのですが、 ということはObjectコンストラクタでオブジェクトを作る際はnew演算子は要らない?? のでしょうか?? またobjとobj2の2つの違いを色々試したのですが違いがわかりません。new演算子を 付けたインスタンスと付けないインスタンス??の違いをどなたか ご教授いただけると助かります。

  • コンストラクタの種類について教えてください!!

    コンストラクタの種類について教えてください!! LinearLayout ll = new LinearLayout(this)の部分について質問いたします 自分はコンストラクタの種類についてデフォルトコンストラクタと引数を持たないコンストラクタと引数を持つコンストラクタがあると認識しています。LinearLayout ll = new LinearLayout(this)の部分では引数ありのコンストラクタが呼ばれるのはわかります。そこでLinearLayout ll = new LinearLayout()のときは引数なしのコンストラクタが呼ばれますよね?ではデフォルトコンストラクタが呼ばれるときの記述式はどのような文になるのでしょうか?教えてください!!!お願いいたします!!

    • ベストアンサー
    • Java
  • 配列であるメンバのコンストラクタを呼ぶ方法

    C++のクラスについて教えていただけないでしょうか。以下のような場合、 class ClassA {   int A; public:   ClassA(int a): A(a) {} }; class ClassB {   ClassA A; public:   ClassB(): A(10) {} }; class ClassC {   ClassA A[2]; public:   ClassC() {} //配列であるメンバのコンストラクタを呼び出したい }; ClassBがClassAのコンストラクタを呼ぶには上記のような方法で良いと思うのですが、ClassCのようにメンバが配列の場合、そのメンバのコンストラクタを呼ぶにはどのようにしたら良いのでしょうか。ご教授をお願いします。

  • デフォルトコンストラクタで分からないことがあります。

    デフォルトコンストラクタ デフォルトコンストラクタで分からないことがあります。 以下のコードです。 > template<class T1, class T2> > struct pair > { > T1 first; // 1つ目の値 > T2 second; // 2つ目の値 > > // デフォルトコンストラクタ > pair() : first( T1() ), second( T2() ){} > > // 引数付きコンストラクタ > pair(const T1& a, const T2& b) : first( a ), second( b ){} > }; このコードの中の pair() : first( T1() ), second( T2() ){} で初期化子による初期化をしていると思うのですが「T1()」と「T2()」は具体的に 何をしているのでしょうか?自分の想像ではfirstとsecondに何か初期化の値を代入して初期化していると思うのですが何でしょうか? なお、その次のコードの意味は分かります。 > pair(const T1& a, const T2& b) : first( a ), second( b ){} これは、引数a,bを持っていてそれぞれfirstにaを代入してsecondにbを代入して初期化しているのですよね。 なお、このコードが掲載されているサイトはここです。 http://www.geocities.jp/ky_webid/cpp/library/011.html

  • コンストラクタについて教えてください!!

    すみません A a = new A(); を例にとりますと Aクラスに引数のないコンストラクトがありますと、そのコンストラクトが呼ばれ、Aクラスにコンストラクトが存在しないとデフォルトコンストラクトが呼ばれるのでしょうか?つまりA a = new A();の式でもAクラスのコンストラクタが存在するかしないかで2通りの呼び方があるということでいいのでしょうか?

    • ベストアンサー
    • Java
  • C#におけるObjectのキャストについて

    こんにちは。 C#におけるObjectのキャストについて、基本的なことにつまずいてしまいました。 以下のような継承関係にあるクラスで、InvalidCastExceptionが投げられてしまいます。 public class ClassA {} public class ClassA_Ex : ClassA {} ClassA_Ex ex = (ClassA_Ex)new ClassA(); キャストできない訳はないと思うのですが…。 何か大きな見落としがありそうですが、よろしくお願いいたします。

  • コンストラクタと多重度

    class A { private B b1; private B b2[]; public A(B b){ if(b == null){ b1 = new B() } b1 = b; } public A(B[] ary){ if(ary == null || ary.length ! = 1){ b2 = new B(1) } b2 = ary; } } class B{} とあります。 AはBを参照し、多重度は1のものと、0又は1のものがあります。 NULLで判定しているのは、オブジェクトのデフォルト値でオブジェクトBの参照の代入をしているか判定しているのですか?  "ary.length ! = 1"は必ず必要なのでしょうか? インスタンス化の時にコンストラクタの実行がされるみたいですが、配列の場合、ゴミでも入るのでしょうか? インスタンス化する時以外でも、コンストラクタが実行されることがあるのですか? 多重度が「0又は1」と分かるように書かれているのでしょうか? 多重度が「0又は2」の場合はどう書きますか?

    • ベストアンサー
    • Java
  • 初心者ですがコンストラクターについて質問

    swingを現在勉強中なのですが、とりあえずコンポーネントを作成する部分で、以下のようなソースを書きました。 JPanel p1 = new JPanel(); p1.setPreferredSize(new Dimension(100, 100)); Border border = new BevelBorder(BevelBorder.RAISED); p1.setBorder(border); 4行目ですが、コンストラクターを呼び出してインスタンス化する場合にBorderオブジェクト型になっているのですが、素人の私には BevelBorder bevelborder = new BevelBorder(BevelBorder.RAISED); にならないのはなぜ?と思ってしまいます。APIをみればsetBorderメソッドがBorderオブジェクトを引数にもつ事は理解できますが、コンストラクターの部分はいまいち理解できません。初歩的な質問ですが、教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • new に失敗させる方法。

    コンストラクタ内でファイルシステム関数などを呼んだ際に、エラーになったらオブジェクトの初期化失敗としてnew の結果をNULLにしたいんですけど、方法が分かりません。 new で NULL を返す方法はあるのでしょうか?

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • 新品の純正品のトナーを交換したにもかかわらず、MFC-L8610-CDWのプリンターがトナーを認識しないトラブルに困っています。
  • お使いの環境はMacOSで、接続は無線LANを使用しています。Wi-Fiルーターの機種名はelecomです。
  • 関連するソフト・アプリや電話回線の情報は提供されていません。
回答を見る