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

ругается на конструктор - C++

Восстановить пароль Регистрация
 
noobiq
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 21
04.10.2012, 23:18     ругается на конструктор #1
Помогите разобраться,пожалуйста с парочкой ошибок.
Собственно пробовал написать программу для эмуляции работы телефона.Свойства:наличие заряда,счета,сети. В методах заряд\разряд(вкл\выкл),положить\снять деньги,найти сеть.Звонок проходит только при наличии всех 3х параметров.

создал файл Mobile.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Mobile
{
    public:
        virtual~Mobile();
        void on_off();
        void set_call();
        void stop_call();
        void money_out();
        void put_money();
        void show();
        private:
            int is_on;
            int is_call;
            int has_money;
};
на него не ругается

далее в main.cpp
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
#include "Mobile.h"
#include <iostream>
using namespace std;
 
 
#include <iostream>
#include "Mobile.h"
 
Mobile::Mobile():is_on(0),is_call(0),has_money(0)
{
    }
Mobile::~Mobile()
{
    void Mobile::on_off()
    {
        is_on=!is_on;
        is_call=0;
    }
    void Mobile::set_call()
    {
        if (is_on && has_money) is_call=1;
    }
    void Mobile::stop_call()
    {
        is_call=0;
    }
    void Mobile::money_out()
    {
        has_money=0;
        is_call=0;
    }
    void Mobile::put_money()
    {
        has_money=1;
    }
    void Mobile::show()
    {
        if (!is_on) cout<<"razryazhen"<<endl;
        else
            if(!has_money) cout<<"No Money!"<<endl;
            else
                if(is_call) cout<<"Called"<<endl;
                else cout<<"end call"<<endl;
    }
}
 
int main()
{
    Mobile Mb;
    int command;
    int g=1;
    Mb.show();
    While(g)
    {
        cout<<"vvedi commandy->";
        cin>>command;
        switch (command)
        {
            case 1:Mb.on_off();Mb.show();break;
            case 2:Mb.set_call();Mb.show();break;
            case 3:Mb.stop_call();Mb.show();break;
            case 4:Mb.money_out();Mb.show();break;
            case 5:Mb.put_money();Mb.show();break;
            default:g=0;
            
        }
    }
    return 0;
}
здесь начинает ругань(строки 9,16,53,54).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
04.10.2012, 23:20     ругается на конструктор #2
Зачем вы в деструктор вынесли реализацию всех своих методов?
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
04.10.2012, 23:29     ругается на конструктор #3
В классе конструктор не объявлен, а вы его реализуете. Объявите конструктор в первом файле.
noobiq
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 21
04.10.2012, 23:38  [ТС]     ругается на конструктор #4
конструктор перенес,после деструктора скобку убрал.
Осталась ошибка в While(g)
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
04.10.2012, 23:43     ругается на конструктор #5
С маленькой буквы
C++
1
while
noobiq
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 21
04.10.2012, 23:48  [ТС]     ругается на конструктор #6
Цитата Сообщение от John Prick Посмотреть сообщение
С маленькой буквы
C++
1
while
спасибо,не заметил)
что-то теперь ему еще куча чего не нравится:
In file included from Mobile.cpp:2:
Mobile.h:23:3: warning: no newline at end of file
Mobile.cpp:4: error: redefinition of `Mobile::Mobile()'
Mobile.h:7: error: `Mobile::Mobile()' previously defined here
Mobile.cpp: In destructor `Mobile::~Mobile()':
Mobile.cpp:9: error: expected primary-expression before "void"
Mobile.cpp:9: error: expected `;' before "void"
Mobile.cpp:14: error: expected primary-expression before "void"
nbproject/Makefile-Debug.mk:67: recipe for target `build/Debug/Cygwin-Windows/Mobile.o' failed
Mobile.cpp:14: error: expected `;' before "void"
make[2]: Leaving directory `/cygdrive/c/Users/user/Documents/NetBeansProjects/lab3'
Mobile.cpp:18: error: expected primary-expression before "void"
nbproject/Makefile-Debug.mk:60: recipe for target `.build-conf' failed
Mobile.cpp:18: error: expected `;' before "void"
make[1]: Leaving directory `/cygdrive/c/Users/user/Documents/NetBeansProjects/lab3'
Mobile.cpp:22: error: expected primary-expression before "void"
nbproject/Makefile-impl.mk:39: recipe for target `.build-impl' failed
Mobile.cpp:22: error: expected `;' before "void"
Mobile.cpp:27: error: expected primary-expression before "void"
Mobile.cpp:27: error: expected `;' before "void"
Mobile.cpp:31: error: expected primary-expression before "void"
Mobile.cpp:31: error: expected `;' before "void"
Mobile.cpp:40:2: warning: no newline at end of file
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.10.2012, 23:59     ругается на конструктор #7
Цитата Сообщение от noobiq Посмотреть сообщение
конструктор перенес
Куда? Покажите, как стало. Пишет, что переопределение конструктора.
noobiq
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 21
05.10.2012, 00:02  [ТС]     ругается на конструктор #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Куда? Покажите, как стало. Пишет, что переопределение конструктора.
внес его в public:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Mobile
{
        public:
                Mobile::Mobile():is_on(0),is_call(0),has_money(0)
{
    }
            Mobile::~Mobile();
        virtual Mobile::~Mobile();       
        void on_off();
        void set_call();
        void stop_call();
        void money_out();
        void put_money();
        void show();
        private:
            int is_on;
            int is_call;
            int has_money;
 
};
+ создал новый файл Mobile.cpp
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
#include "Mobile.h"
#include <iostream>
using namespace std;
 
Mobile::Mobile():is_on(0),is_call(0),has_money(0)
{
    }
            Mobile::~Mobile()
            {
            }
void Mobile::on_off()
    {
        is_on=!is_on;
        is_call=0;
    }
    void Mobile::set_call()
    {
        if (is_on && has_money) is_call=1;
    }
    void Mobile::stop_call()
    {
        is_call=0;
    }
    void Mobile::money_out()
    {
        has_money=0;
        is_call=0;
    }
    void Mobile::put_money()
    {
        has_money=1;
    }
    void Mobile::show()
    {
        if (!is_on) cout<<"razryazhen"<<endl;
        else
            if(!has_money) cout<<"No Money!"<<endl;
            else
                if(is_call) cout<<"Called"<<endl;
                else cout<<"end call"<<endl;
    };
в main оставил все остальное.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.10.2012, 00:37     ругается на конструктор #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef MOBILE_H
#define MOBILE_H
class Mobile
{
      public:
        Mobile();
        ~Mobile();       
        void on_off();
        void set_call();
        void stop_call();
        void money_out();
        void put_money();
        void show();
      
      private:
         int is_on;
         int is_call;
         int has_money;
};
#endif
noobiq
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 21
06.10.2012, 23:07  [ТС]     ругается на конструктор #10
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef MOBILE_H
#define MOBILE_H
class Mobile
{
      public:
        Mobile();
        ~Mobile();       
        void on_off();
        void set_call();
        void stop_call();
        void money_out();
        void put_money();
        void show();
      
      private:
         int is_on;
         int is_call;
         int has_money;
};
#endif
спасибо.Программа стала запускаться,но почему-то при вводе любой цифры пишет одно и то же: No Money.В чем может быть проблема?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.10.2012, 23:34     ругается на конструктор
Еще ссылки по теме:

C++ Массив объектов класса в другом классе (композиция). Компилятор ругается на конструктор
Ругается на gets() C++
Ругается на библиотеку C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.10.2012, 23:34     ругается на конструктор #11
Сначала 5.
Yandex
Объявления
06.10.2012, 23:34     ругается на конструктор
Ответ Создать тему
Опции темы

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