У меня следующая проблема: я пытаюсь сделать простой толчок в своем классе, но он не работает ..
#include <stdio.h>
#include <iostream>
#include <vector>
template <size_t B, size_t N, typename T = char>
class Number
{
private:
std::vector<T>* v[N];
int toBase(int valor);
public:
Number(int valor);
Number <B,N,T> suma(const Number<B,N,T>& sumando) const;
//ostream& write(ostream& os)const;
};
template <size_t B, size_t N, typename T>
Number<B,N,T>::Number(int valor)
{
toBase(valor);
}
template <size_t B, size_t N, typename T>
int Number<B,N,T>::toBase(int valor)
{
for(int i = 0; i < N; i++) {
int aux = valor % B;
v.push_back(aux); // PROBLEM HERE
}
}
template <size_t B, size_t N, typename T>
Number<B,N,T> Number<B,N,T>::suma(const Number<B,N,T>& sumando) const
{
//sumando.toBase();
}
Компилятор говорит "базовый тип ссылки на элемент" std :: vector *[10] 'не является структурой или объединением v.push_back (aux); "
Я думаю, что проблема начинается с моего вектора * v.Может быть, я не могу использовать push_back, потому что его указатель?Я не знаю ..
Есть идеи?Спасибо.