JAVAのふしぎ

JAVAの勉強をしているのですが。独習JAVA

int num = 100

ってのは変数numを作成し、100を代入する と書いてあった。

C++を多少なりともやった人間から見ると、これはちょっと違和感があるなあ。C++は「初期化」と「代入」を厳密に区別するから。JAVAはコピーコンストラクタがないらしいから、ほんとに代入をしているのかもしれないけど。

#include 
using namespace std;

class A{
public:
     A(){}
     A(const A& a){
          cout << "Copy constructor is called." << endl;
     }
     A& operator=(const A &a){
          cout << "Operator \"=\" is called." << endl;
          return (*this);
     }
};

int main(){
     A a1, a2;
     A a3 = a1;
     a2 = a1;     
     return 0;
}

実行結果:

Copy constructor is called.
Operator "=" is called.

C++やってればJAVAは簡単とかいうけどさ、よくわからん。勉強して3日目だからしょうがないといえばしょうがないか・・・