こんにちは、私のプログラムには 2 つのコンストラクターがあります。
BinaryImage();
BinaryImage(int MM, int NN, double* input_data, double thresh);
私のメインでは。
BinaryImage BinaryImageObj();
これは正常にコンパイルされますが、2 番目のコンストラクターを呼び出すと、
BinaryImage BinaryImageObj2(MM,NN,data,1);
ただし、これによりエラーが発生します。
main.cpp ||「BinaryImage::BinaryImage(int, int, double*, double)」への未定義の参照
なぜこれを行うのですか?単純なものが欠けていますか?
ありがとう
マイク
このマトリックス クラス コンストラクターはオブジェクトを作成します
Matrix::Matrix(int MM, int NN, double* input_data){
M = MM;
N = NN;
data = new double[M * N];
for ( int i =0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
data[i* N+j] = input_data[i*N+j];
// cout << data[i*N+j] <<"\t";
}
// cout <<"\n";
}
cout << "This is the Matrix Constructor being invoked" << endl ;
}
binaryimage クラス (マトリックスから継承)
BinaryImage::BinaryImage(int MM, int NN, double* input_data, double thresh ):Matrix(MM, NN, input_data)
{
M = MM;
N = NN;
data = new double[M * N];
for ( int i =0; i < M; i++)
{
for (int j = 0; j < N; j++)
{
treshData(tresh);
}
}
}
主要
Matrix MatrixObj1(MM,NN,data2);
BinaryImage BinaryImageObj;
何が起こっているかを示すために編集されました。