Witam, problem polega na tym, że, gdy wykorzystuje szablon klasy wektor jako typ char, program...nie działa jak należy, adresy zmiennych nie wyświetlają się i tego typu problemy. W sytuacji, gdy typem będzie int, float, double, bool, long, cokolwiek, program działa normalnie i adresy też się wyświetlają. Przy wykorzystaniu string program skacze o 4, myślę, że tutaj też coś jest nie tak. Tutaj kod:
#ifndef wektor_hpp
#define wektor_hpp
#include <iostream>
namespace amadi
{
template <class T>
class wektor
{
T * tab;
T * tabIterator;
T * tabEnd;
int tabSize;
public:
wektor()
{
tabSize = 5;
tab = new T [tabSize];
std::cout << tab << std::endl;
tabIterator = tab;
tabEnd = tab+tabSize-1;
}
~wektor()
{
delete [] tab;
tab = NULL;
}
void wypisz()
{
for (int i = 0; i < tabSize; i++)
{
std::cin >> tab[i];
std::cout << tab[i] << std::endl;
std::cout << tab+i << std::endl;
}
std::cout << "tab: " << tab << std::endl;
std::cout << "tabiterator: " << tabIterator << std::endl;
std::cout << "tabEnd: " << tabEnd << std::endl;
std::cout << "tabSize: " << tabSize << std::endl;
}
};
}
#endif // wektor
A tutaj kod klasy main:
#include <iostream>
#include "wektor.hpp"
using namespace std;
using amadi::wektor;
int main()
{
wektor <char> ziemniak;
ziemniak.wypisz();
return 0;
}