템플릿이 여기에 대한 대답이 아니지만 일부 상속을 시도했는데 작동하지 않아 여기에 있습니다.C++ 템플릿 : 인스턴스가 아닌 패스 유형?
문제점 :
내 모든 "작업"기능을 수용 추상 기본 클래스가 있습니다. 그런 다음 기본 클래스를 확장하고 기본적으로 "work"함수로 전달할 데이터의 세부 정보를 채우고 몇 가지 기본 클래스 함수를 재정의하는 다른 클래스를 사용할 것입니다.
각 파생 클래스에서 변경되는 주요 데이터 중 하나는 구조체입니다.
초기 공격 계획은 BaseStruct를 정의하고 추상 기본 클래스는 그 기본 구조체에 대한 모든 작업을 수행했습니다. 파생 클래스가 기본 구조체를 확장 한 다른 구조체를 사용했다면 괜찮습니다.
이 문제는 내가 작업 한 구조체의 형식이 파생 된 형식이 아닌 BaseStruct이기 때문에 구조체의 크기를 얻을 수 없다는 문제가있었습니다.
이제 템플릿을 살펴 보겠습니다.
은 기본적으로 내가이 작업을 수행하는 기본 기능을 갖고 싶어 : 물론
template<typename StructType>
void AbstractMaterial::CreateVertexBuffer() {
StructType* array = new StructType[numVertices];
size_t si = sizeof(StructType) * numVertices;
...
}
실제로이 기능에 아무것도 거치지 않고를, 정말 작동하지 않습니다. 차라리 형식 정보를 얻기 위해 전달할 StructType 인스턴스를 만들지는 않겠지 만 다른 방법이없는 것 같습니까?
본질적으로이 함수가 호출 될 때 사용할 StructType을 다른 누군가에게 파생 클래스로 지정해야합니다.
감사합니다.
응답 해 주셔서 감사합니다. – Jon