저는 C++을 처음 접했고 저와 똑같은 문제를 가진 사람을 찾을 수 없습니다. 기본적으로, 나는 결코 직접 인스턴스화하지 않는 추상 클래스와 여러 자식 클래스를 갖기 위해 노력하고있다. 또한 모든 수퍼/하위 클래스에서 일관된 템플릿을 유지하려고합니다. 여기에 내 소스 파일이 있습니다. 나는 3 개의 유틸리티 파일과 하나의 .cpp 파일을 main 함수에 가지고있다.메서드를 찾을 수 없음 : 템플릿, 가상 메서드, 상속, 다형성
#ifndef ABSTRACTMATRIX
#define ABSTRACTMATRIX
template<class T>
class DataMatrix {
public:
int numFeatures;
int numPoints;
T* data;
T* classifications;
virtual void scale(T scalar) = 0;
};
#endif
여기 sparse_host_matrix.h 그 추상 클래스의 내 서브 클래스 선언,
#ifndef SPARSEHOSTMATRIX
#define SPARSEHOSTMATRIX
#include <iostream>
template<class T>
class SparseHostMatrix : public DataMatrix<T> {
public:
void scale(T scalar);
};
#endif
입니다 그리고 여기에 이러한 기능의 구현이다 abstract_matrix.h ..
#include "sparse_host_matrix.h"
#include <iostream>
template<class T>
void SparseHostMatrix<T>::loadFromFile(char* filename) {
std::cout << "Loading in sparseHostMatrix" << std::endl;
}
template<class T>
void SparseHostMatrix<T>::scale(T scalar) {
std::cout << "Loading in sparseHostMatrix" << std::endl;
}
그리고 이 주요 기능을 실행할 때 ...
#include <iostream>
using namespace std;
#include "abstract_matrix.h"
#include "sparse_host_matrix.h"
int main() {
DataMatrix<double> *myMat = new SparseHostMatrix<double>;
myMat->scale(.5);
}
내가 SparseHostMatrix`에 오류가 정의되지 않은 참조 : 코드의 엄청난 금액 (더블)
죄송 규모를 얻을, 난 그냥 꽤 혼란 스러워요 성공적없이 잠시 동안이 붙어있다 SO 또는 다른 방법으로 해결책을 찾는다.