Переменная класса печати
Это мой заголовочный файл:
#include <iostream> #include <cstdlib> namespace assignment { template<typename T> class vector { private: T * p; int size; int capacity; public: explicit vector() :p(nullptr), size(0), capacity(0) { p = new T[size]; } ~vector() { delete p; } int getSize()const { return size; } int getCapacity()const { return capacity; } void push_back(const T &v) { if(size + 1 <= capacity) { //!<trivial p[size] = v; ++size; } else { //!<non-trivial capacity *= 2; //!<trivial p[size] = v; ++size; } } T pop_back(void) { --size; return p[size]; } bool empty(void)const { return p == nullptr; } }; void vector<float> Print(vector<float>&p) { std::cout << p << " "; if(p == nullptr) std::cout << "(p.getSize=" << p.size << ", p.getCapacity=" << p.capacity << ")" << std::endl; } }
И у меня есть это в мой файл main.cpp :
void TestPush(void) { std::cout << "\n********** TestPush **********\n"; assignment::vector<float> a; std::cout << "Empty array:\n"; Print(a); std::cout << "push_back 5 floats:\n"; for (float i = 0; i < 5; i++) { a.push_back(i); Print(a); } std::cout << "pop_back until empty:\n"; while (!a.empty()) { a.pop_back(); Print(a); } }
Что я уже пробовал:
Я продолжаю получать эту ошибку:
ошибка: недопустимый Декларатор перед ‘печатью’
пустота вектор&ЛТ;поплавок&ГТ; печати(вектор&ЛТ;поплавок&ГТ;&амп;п)
^
ошибка: недопустимый Декларатор перед ‘печатью’
пустота вектор&ЛТ;поплавок&ГТ; печати(вектор&ЛТ;поплавок&ГТ;&амп;п)
^
главная.ЧГК:10:12: ошибка: ‘печать’ не был объявлен в этой области видимости
Печать (a);
Я перепробовал различные методы и до сих пор не решил эту ошибку.
Любая помощь и Совет будут очень признательны.