Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Pavel1133
3 / 3 / 0
Регистрация: 12.10.2009
Сообщений: 81
#1

Почуму конструктор ругается??? - C++

26.12.2009, 11:53. Просмотров 279. Ответов 1
Метки нет (Все метки)

вот програма реализующая класс очередь, почти всё работает , тока выдаёт 2 ошибки связанные с конструктором

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
using namespace std;
class queue{
private:
    int P[5];
    int k,n;
public:
    queue(int &P,int &k,int &n){
        //for(int i=0;i<5;i++)
         //P[i]=0;
            k=-1;
            n=0;    
    };
    
    friend queue push(queue &A);
    friend queue pop(queue &A);
    friend void show(queue A);
};
//queue(int P,int k,int n){
//  for(int i=0;i<5;i++)
//      A.P[i]=0
//  k=-1;
//  n=0;    };
queue push(queue &A){
        if(A.k==-1)
            for(int i=0;i<5;i++)
                A.P[i]=0;
    int a;
    cout<<"ccedite element dlia dobavleniya: ";
    cin>>a;
    if((A.n==A.k)&&(A.n+1!=0)){
        
        cout<< "o4ered polna";
    }
    else{
    if(A.n==5)
        A.n=0;
    //if(k==5)
    //  k=0;
    A.P[A.n]=a;
        A.n++;
        if((A.n==1)&&(A.P[A.n]==0))
            A.k=0;
 
    }
        return A;
}
queue pop(queue &A){
    if((A.n==A.k)&&(A.n+1==0)){
        cout<<"o4ered' polna";
    }
    else{
        if(A.k==5)
            A.k=0;
        A.P[A.k]=0;
        A.k++;
    }
    return A;
}
void show(queue A){
for(int i=0;i<5;i++)
cout<<A.P[i]<<' ';
}
int main(){
    int l,i=0;
    queue A;
    while(i<i+1){
        cout<<"1 - push\n";
        cout<<"2 - pop\n";
        cout<<"3 - show\n";
        cout<<"4 - exit\n";
    cin>>l;
    switch(l){
        case 1:push(A);
                   break;
        case 2:pop(A);
            break;
        case 3:show(A);
            break;
        case 4:exit(1);
    }
    }
}
Ошибки:
1>f:\1\1\1.cpp(10) : error C2109: subscript requires array or pointer type
1>f:\1\1\1.cpp(66) : error C2512: 'queue' : no appropriate default constructor available

help
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2009, 11:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почуму конструктор ругается??? (C++):

ругается на конструктор - C++
Помогите разобраться,пожалуйста с парочкой ошибок. Собственно пробовал написать программу для эмуляции работы телефона.Свойства:наличие...

C++ ругается на конструктор! Как исправить ? - C++
Помогите с конструктором! Как вообще его обявлять? #include &quot;stdafx.h&quot; #include &lt;string&gt; #include &lt;iostream&gt; using namespace...

Ругается new при создании динамического массива через перегруженный конструктор - C++
Перегрузил конструктор: class Library { public: Library(void) //конструктор библиотеки без заданного типа { ...

Массив объектов класса в другом классе (композиция). Компилятор ругается на конструктор - C++
Суть задания: есть 1 класс надо создать 2-ой класс для работы с коллецией 1-го. 1&gt;main.obj : error LNK2019: ссылка на неразрешенный...

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования - C++
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс...

this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор) - C++
class Test { int i; public: void test(int i) { this -&gt; i = i; } }; Конструктор Test::Test всегда вызывается...

1
RazorQ
581 / 348 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
26.12.2009, 12:15 #2
Здесь надо всё переписывать. Зачем ты используешь классы, если программируешь как на структурном языке? Попробуй ешё раз прочитать теорию по классам и реализовать очередь.

Не по теме:

Для самых ленивых
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
 * File vqueue.h
 * VQueue: реализует структуру данных очередь
 */ 
#ifndef V_QUEUE_H
#define V_QUEUE_H
 
template< class T >
class VQueue
{
public:
    inline VQueue()
        { first = NULL; last = NULL; }
    inline ~VQueue();
    void enqueue( const T &enValue );   // вставить элемент в очередь
    T dequeue();    // удалить элемент
    T &head()       // вернуть верхний элемент (без извлечения)
        { return first->data;}
    const T &head() const
        { return first->data;}
private:
    inline bool isEmpty()   // пуста ли очередь
        { return first == NULL; }
    struct queueNode
    {
        T data;
        queueNode *nextPtr;
    };
    queueNode *first;   // верхний элемент
    queueNode *last;    // нижний элемент
};
 
template< class T >
VQueue<T>::~VQueue()
{
    // полностью освобождаем занятое пространство
    queueNode *tmp = first;
    while(tmp != NULL)
    {
        first = tmp->nextPtr;
        delete first;
    }
    
    tmp = last;
    while(tmp != NULL)
    {
        last = tmp->nextPtr;
        delete last;
    }
}
 
template< class T >
void VQueue<T>::enqueue( const T &enValue )
{
    queueNode *newPtr = new queueNode;
    if(newPtr != NULL)
    {
        newPtr->data = enValue;
        newPtr->nextPtr = NULL;
        // если очередь пуста, то поместить в голову
        if( isEmpty() )
            first = newPtr;
        else
            last->nextPtr = newPtr;
        last = newPtr;
    }
}
 
template< class T >
T VQueue<T>::dequeue()
{
    queueNode *tmp = first;
    T value = first->data;
    first = first->nextPtr;
    
    if(first == NULL)   // если очередь пуста
        last = NULL;
        
    delete tmp;
    return value;
}
#endif /* V_QUEUE_H */

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2009, 12:15
Привет! Вот еще темы с ответами:

Будет ли определен компилятором конструктор по умолчанию, если есть конструктор с дефолтным параметром? - C++
Добрый день, сразу к делу, есть некий класс class some { int x; public: some(int y = 1) : x(y) {} };

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;math.h&gt; #include &lt;algorithm&gt; using...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно» - C++
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? - C++
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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