На данный вопрос уже ответили:
Здравствуйте,помогите пожалуйста.Пытаюсь реализовать шаблонный класс с шаблонными функциями. Не понимаю в чем ошибка при компиляции, подскажите пожалуйста:
Error LNK2019 unresolved external symbol "public: void __thiscall Stack::Push(float)" (?Push@?$Stack@M@@QAEXM@Z) referenced in function _main Calc
и
Error LNK2019 unresolved external symbol "public: float __thiscall Stack::Pop(void)" (?Pop@?$Stack@M@@QAEMXZ) referenced in function _main Calc
Код(header):
#pragma once
template <class T>
struct Element
{
T data;
Element<T>* next;
};
///////////////////////////////////////
template <class T>
class Stack
{
private:
Element<T>* Head;
public:
Stack<T>() {}
~Stack<T>() {}
void Push(T d);
T Pop();
};
Определение методов:
#include "Stack.h"
template<class T>
void Stack<T>::Push(T d)
{
Element* new_Element = new Element;
new_Element->data = d;
new_Element->next = Head;
Head = new_Element;
}
template <class T>
T Stack<T>::Pop()
{
T temp = Head->data;
Element *new_Element = Head;
Head = Head->next;
delete new_Element;
return temp;
}
И main ()
:
#include "Stack.h"
#include <iostream>
int main()
{
Stack<float> s;
int n;
int value;
std::cout << "How many values will you have?" << std::endl;
std::cin >> value;
for (int i(0); i < value; i++)
{
std::cout << " Enter number: ";
std::cin >> n;
s.Push(n);
}
while (true);
{
std::cout << "Enter symbol (space for exit):";
int choice = getchar();
switch (choice)
{
case '+':
s.Push(s.Pop() + s.Pop());
break;
case '-':
s.Push(-s.Pop() + s.Pop());
break;
case '*':
s.Push(s.Pop()*s.Pop());
break;
case '/':
s.Push(s.Pop() / s.Pop());
/*case '=':
std::cout <<"Result: "<< s.Pop()<<std::endl;
break;*/
case ' ':
exit(-1);
break;
default:
break;
}
}
system("pause");
return 0;
}
Не могу понять в чем проблема......
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем здравствуйтеЯ недавно начал учить фреймворк Qt
Не могу понять зачем нужен output и input и как его использовать
Нужно написать подпрограмму для вычисления постфиксных выражений, например:
Как можно проверить консольное ли приложение или оконное? Может в winapi есть какое-то описание процесса, его свойств?