class 속에서 dynamically class 사용하기

mhlee03의 이미지

다음과 같이 Matrix라는 class를 만들었습니다. main에서 이를
변수로 잡아 실행시키면 잘 됩니다. 그러나 ClassB라는 곳에서
Matrix m(nx, ny) (여기서 nx와 ny는 input으로 하려고 합니다.)
을 만들려고 하면 컴파일 에라가 나옵니다. 고수님들 도와 주세요.

( 어 코드가 영 이상하게 나오네요. )

[code]

#include

using namespace std;

class Matrix
{
public:
double *data_;
int nx_, ny_;

Matrix(int nx, int ny)
{
nx_ = nx;
ny_ = ny;
data_ = new double [nx*ny];

// set the matrix as an identity matrix, in Fortran array format
for(int i=0; i for(int j=0; j {
if( i==j)
data_[(i-1)+(j-1)*nx_] = 1;
else
data_[(i-1)+(j-1)*nx_] = 0;
}
}

~Matrix() { cout

double& operator()(int i, int j)
{
return data_[ (i-1)+(j-1)*nx_ ];
}
};

class ClassB
{
public:

//Matrix m(nx,ny); 다.

ClassB( int nx=10, int ny=10)
{
//m = new Matrix (nx, ny); }

~ClassB()
{
//delete [] v;
}
};

int main()
{
//-------------------------
// Test Matrix Class
//-------------------------
int nx=3, ny=4;
Matrix m1(nx,ny);

for(int i=0; i {
for(int j=0; j {
cout }
cout }

//-------------------------
// Test of ClassB
//-------------------------

//ClassB ms;

return 0;
}
[/code]

whitelazy의 이미지

Matrix *m;

m = new Matrix(x,y);

아닌가요??

C++ 같은데 C++에서 new 는 생성된 인스턴스의 포인터를 반환 하는걸로 기억합니다