Я только начал использовать шаблоны и c ++.
Я хочу добавить шаблонный класс как закрытый внутри другого класса.
Я хочу добавить этот класс:
Заголовок:
template <class type>
class BufferedDatenKonsistenz {
public:
BufferedDatenKonsistenz(type* buffer0, type* buffer1, type* buffer2);
BufferedDatenKonsistenz(type* buffer0, type* buffer1);
//some methods
private:
const int16_t numberOfBuffers;
type* buffers[3];
//some other members
};
Источник:
template<class type>
BufferedDatenKonsistenz<type>::BufferedDatenKonsistenz(type* buffer0, type* buffer1, type* buffer2) : numberOfBuffers(3){
this->buffers[0] = buffer0;
this->buffers[1] = buffer1;
this->buffers[2] = buffer2;
}
template<class type>
BufferedDatenKonsistenz<type>::BufferedDatenKonsistenz(type* buffer0, type* buffer1) : numberOfBuffers(2){
this->buffers[0] = buffer0;
this->buffers[1] = buffer1;
this->buffers[2] = NULL;
}
И добавить этот класс как закрытый член в какой-то другой класс:
Другой заголовок класса:
class SomeClass {
public:
SomeClass();
~SomeClass();
//some stuff
private:
//some stuff
static const uint16_t cyclicDataSize = 50;
uint16_t cyclicDataArea0[cyclicDataSize];
uint16_t cyclicDataArea1[cyclicDataSize];
uint16_t cyclicDataArea2[cyclicDataSize];
// How do I get this right???????????????????????????????????????????????????
DatenKonsistenz::BufferedDatenKonsistenz<uint16_t> bufferLogik(cyclicDataArea0,
cyclicDataArea1,
cyclicDataArea2);
};
Я не знаю, возможно ли то, что я пытаюсь сделать.Но если это возможно, я не знаю, неправильны ли элементы шаблона, или мне, возможно, придется переместить все внутри конструкторов в список инициализаторов или что-то еще.
Здесь слишком много потенциальных ошибок, которые я могу 'Я сам это не понимаю.
Кстати.Я застрял на C ++ 03, потому что компилятор не может сделать ничего более нового.