미안하다 질문 하려고 어그로 끌었다

클래스 이름이 Class 일때


Class a;

Class a();

랑 차이가 뭐냐?


연산자 오버로딩 해놨는데


Class a;

class c= a+a; 하면 오류 안나는데


Class a();

Class c= a+a; 하면 오류나냐?


코드 예시


#include <cstdlib>

#include <cmath>

#include <cstdio>

#include <ctime>


class Matrix

{

public:

int matrix;


Matrix()

{

for (int i = 0; i < 27; i++)

{

matrix = rand() % 9;

}

}

Matrix(int a)

{

for (int i = 0; i < 27; i++)

{

matrix = rand() % 9;

}

}

};

Matrix operator+(Matrix& a, Matrix& b);


Matrix operator+(Matrix& a, Matrix& b)

{

return Matrix(a.matrix + b.matrix);

}


void main()

{

srand(time(0));


Matrix f();//Matrix f 

Matrix v();//Matrix v

Matrix c = f + v;