Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Шаблон класса. Непойму как создать объект

1.6K
13 октября 2008 года
Shtirlitz
145 / / 31.07.2006
Всем доброго времени суток.
Имеется такой код:
Код:
//queue.h

#include <iostream>
#include <fstream>
using namespace std;

template <class T>
class queue {
private:
    struct element {
        T info;
        element* next;
    };

    element *start,*top,*temp; 
public:
    queue();
    void put(T);
    bool get(T &var);
    T peek();
    void operator+(T &var);
    T operator-();
};


Код:
//queue.cpp

#include "queue.h"

template <class T> queue<T>::queue(){
    cout<<"Constructor"<<endl;
    start=top=temp=NULL;
}

template <class T> void queue<T>::put(T var){
    if(start)
    {
        start->next=new element;
        start=start->next;
        start->info=T;
        start->next=NULL;
    }
    else
    {
        start=new element;
        start->info=T;
        start->next=NULL;
        top=start;
    }
}

template <class T>  bool queue<T>::get(T &var){
    if(!top) {
        var=0;
        return false;
    }
    else
    {
        var=top->info;
        element *temp=top;
        top=top->next;
        delete temp;
        return true;
    }
}

template <class T> T queue<T>::peek(){
    if(!top) {
        return 0;
    }
    else
    {
        return top->info;
    }
}

template <class T> void queue<T>::operator+(T &var){
    if(start)
    {
        start->next=new element;
        start=start->next;
        start->info=T;
        start->next=NULL;
    }
    else
    {
        start=new element;
        start->info=T;
        start->next=NULL;
        top=start;
    }
}

template <class T> T queue<T>::operator-(){
    if(!top) {
        var=0;
        return false;
    }
    else
    {
        var=top->info;
        element *temp=top;
        top=top->next;
        delete temp;
        return true;
    }
}



Код:
//index.cpp
#include <iostream>
#include <fstream>
#include "queue.h"
using namespace std;

int main(){
    queue<int> q();
    //q.put(10);
    return 0;
}


Никак не могу понять почему не создается объект и как его создать. Очень нужна помощь. заранее благодарен!
1
13 октября 2008 года
kot_
7.3K / / 20.01.2000
и что - никакой ошибки не выдает?
1
13 октября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Shtirlitz

queue<int> q();


например вот тут.

1.6K
13 октября 2008 года
Shtirlitz
145 / / 31.07.2006
Ошибок как раз таки и не выдает. А то что Вы написали без скобок работать не хочет в принципе.
1
13 октября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: Shtirlitz
Ошибок как раз таки и не выдает. А то что Вы написали без скобок работать не хочет в принципе.


вы знаете - когда моя двухлетняя дочь плачет и твердит - "не работает","болит" и пр. я понимаю что в связи с ее возрастом у нее еще отсуствует понятие о коммуникации, она еще не способна осознать, что для того что бы ее проблему поняли - ее надо объяснить. Для этого у ребенка спрашивают - что болит например, что не работает. ути-пути и пр.
если вы твердо уверены что вышли из этого возраста - так изложите в конце концов свою проблему как человек взрослый. Я не буду просматривать и эксперементировать с вашим кодом - мне это не нужно и не интересно - я умею писать шаблоны классов и эту задачу я решить могу. а если вам нужна помощь так потрудитесь излагать так, что бы в конце дня мне не приходилось гадать - что у вас не работает и выдвигать неприличные предположения по данному поводу. Неужели это до сих пор не понято - согласно исследованиям Пиаже - уже 6-летний ребенок способен к эффективной коммуникации - правда с некоторыми ограничениями. Но вы я надеюсь - уже из этого возраста выросли?

3
13 октября 2008 года
Green
4.8K / / 20.01.2000
Цитата: Shtirlitz
Ошибок как раз таки и не выдает. А то что Вы написали без скобок работать не хочет в принципе.


Как ты думаешь, что это:

 
Код:
int q();

определение переменной или объявление функции?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог