Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка линковки, класс стек 
V
    Опции темы
maxi91m
Дата 26.10.2009, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 14.1.2007
Где: Нижний Новгород

Репутация: нет
Всего: нет



Собственно проблема при создание объекта

Вот такие ошибки
Ошибка    1    error LNK2028: ссылка на неразрешенную лексему (0A00001E) "public: __clrcall TStack<int>::TStack<int>(int)" (??0?$TStack@H@@$$FQAM@H@Z) в функции "void __clrcall `dynamic initializer for 'sm''(void)" (???__Esm@@YMXXZ@?A0xed01c25c@@$$FYMXXZ)    GraficS.obj    GraficS
Ошибка    2    error LNK2019: ссылка на неразрешенный внешний символ "public: __clrcall TStack<int>::TStack<int>(int)" (??0?$TStack@H@@$$FQAM@H@Z) в функции "void __clrcall `dynamic initializer for 'sm''(void)" (???__Esm@@YMXXZ@?A0xed01c25c@@$$FYMXXZ)    GraficS.obj    GraficS
Ошибка    3    fatal error LNK1120: 2 неразрешенных внешних элементов    D:\ННГУ\ЯП\СИ\GraficS\Debug\GraficS.exe    1    GraficS


Form1.h
Код

#pragma once
#include "TStack.h"
TStack<int> sm(10);// Так пишу не рабоате выдает ошибку выше
TStack<int> sb;// Так пишу работает
// тут все остальное от формы стандартное 


TStack.h
Код

#ifndef TStack_H_
#define TStack_H_

template<class T>
class TStack {
private:
    int end;
    int MaxSize;
    T*  StMas;
public:
    TStack(){};
    TStack(int );
    TStack(TStack<T>& St);
    ~TStack(){delete[] StMas;}
    int Empty();
    int Full();
    T Pop();
    void Push(T elem);
};
#endif 


TStack.cpp
Код

#include "stdafx.h"
#include "TStack.h"

template<class T>
TStack<T>::TStack(int size)
{
    MaxSize = size;
    end = -1;
    StMas = new T[MaxSize];
}
template<class T>
TStack<T>::TStack(TStack<T> &St)
{
    MaxSize = St.MaxSize;
    end = St.end;
    StMas = new T[MaxSize];
    for(int i; i<MaxSize; i++);
        StMas[i]=St.StMas[i];
}
template<class T>
int TStack<T>::Empty()
{
    if(end == -1) return 1;
    else return 0;
}
template<class T>
int TStack<T>::Full()
{
    if(end == MaxSize-1) return 1;
    else return 0
}
template<class T>
T TStack<T>::Pop()
{
    if(end > -1) return StMas[end--]; 
}
template<class T>
void TStack<T>::Push(T elem)
{
    if(end < MaxSize) StMas[end++]=elem;
}

--------------------
PM MAIL ICQ   Вверх
azesmcar
Дата 26.10.2009, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



maxi91m

Пиши реализацию функций класса TStack в заголовочном файле, а cpp файл вообще убери.
Код

#ifndef TStack_H_
#define TStack_H_
template<class T>
class TStack {
private:
    int end;
    int MaxSize;
    T*  StMas;
public:
    TStack(){};
    TStack(int ) {  ... }
    TStack(TStack<T>& St) { ... }
    ...
};
#endif 

почитай например тут


Это сообщение отредактировал(а) azesmcar - 26.10.2009, 06:42
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0404 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.