Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
#1

ошибка в коде. - C++

23.12.2011, 22:53. Просмотров 456. Ответов 5
Метки нет (Все метки)

вечер добрый.
помогите найти ошибку.

stack.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
template <class T>
class stack {
private:
    const static unsigned int size = 10;
    unsigned int top;
    T arr[size];
public:
    stack() : top (0) {}
    void push (T var);
    T pop();
    std::ostream & operator << (std::ostream &ofs);
};

stack.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stack.h"
 
template <class T>
void stack<T>::push (T var) {
    arr[++top] = var;
}
 
template <class T>
T stack<T>::pop() {
    return arr[top--];
}
 
template <class T>
std::ostream & stack<T>::operator << (std::ostream &ofs) {
    for (unsigned int i = 0; i < top; ++i)
        ofs << arr[i] << " ";
    ofs << std::endl;
    return ofs;
}

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stack.h"
 
int main() {
    stack <int> mystack1;
    mystack1.push (10);
    mystack1.push (15);
    stack <float> mystack2;
    mystack2.push (10.25);
    mystack2.push (15.0);
    stack <char> mystack3;
    mystack3.push ('c');
    mystack3.push ('a');
    std::cout << mystack1 << mystack2 << mystack3;
    
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2011, 22:53     ошибка в коде.
Посмотрите здесь:

C++ Ошибка в коде.
C++ В коде ошибка
Ошибка в коде C++
C++ ошибка в коде ?
C++ Ошибка в коде
C++ Ошибка в коде
Ошибка в коде C++
C++ Ошибка с else/else if в коде
Ошибка в коде C++
C++ Ошибка в коде
Ошибка в коде С++ C++
Ошибка в коде C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.12.2011, 22:55     ошибка в коде. #2
neske, ну хоть вы то можете выложить сообщение компилятора или сказать что именно не так работает
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
23.12.2011, 23:02  [ТС]     ошибка в коде. #3
прошу прощения, забыл, ошибка компиляции.
main.obj : error LNK2019: unresolved external symbol "public: void __thiscall stack<int>:ush(int)" (?push@?$stack@H@@QAEXH@Z) referenced in function _main
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.12.2011, 23:04     ошибка в коде. #4
в конце файла stack.h сделайте #include <stack.cpp>.
stack.cpp лучше также переименовать в stack.inl.
ну и шаблоны обычно реализуются в том же файле, где и декларируются. так что лучше вообще без stack.cpp/stack.inl
Jupiter
Каратель
Эксперт C++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.12.2011, 23:05     ошибка в коде. #5
neske, шаблоны не разносят по файлам, должно быть все в одном файле
neske
1463 / 830 / 69
Регистрация: 26.03.2010
Сообщений: 2,830
23.12.2011, 23:06  [ТС]     ошибка в коде. #6
не знал, спасибо.
Yandex
Объявления
23.12.2011, 23:06     ошибка в коде.
Ответ Создать тему
Опции темы

Текущее время: 05:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru