1 Востаннє редагувалося Krip4yk (27.03.2014 19:39:38)

Тема: Проблема з программою. Вона всередині.

Робив на DevC++ 4.9.9.2

Так ось. Вчитель дав мені задачу зробити гру "Кубік". Але не функціями (як я дуже люблю), а классами. Так ось я щось зробив. Воно вийшло дуже велике, і багато помилок.
Але мало того, ще й мають бути ф-ї save|load...
В классах там ви побачите по назві де що є.
Будь-ласка - поясніть де що не так + по можливості виправте мені цю помилку. Я не багато знаю і заплутуюсь на дуже розумних сайтах. У вчителя (гад) така техніка - ось тобі задача - зроби її як хочеш, а від мене відстань. В принципі правильно... ніхто зі мною нянькатись не буде... проїхали

Так ось ця прога у включеннях.

+ ось помилки (на всякий випадок)

Прихований текст
5    0    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    In file included from C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h
5        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classload.h                     from C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classload.h
5        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp                     from C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp
9    7    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classsave.h    [Error] redefinition of 'class classsave'
9    7    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classsave.h    [Error] previous definition of 'class classsave'
5    0    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classload.h    In file included from C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classload.h
5        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp                     from C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp
13    7    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] redefinition of 'class classgame'
13    7    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] previous definition of 'class classgame'
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    In function 'int random12()':
120    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] redefinition of 'int random12()'
120    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] 'int random12()' previously defined here
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    In function 'int random()':
127    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] redefinition of 'int random()'
127    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] 'int random()' previously defined here
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    In function 'bool pobedauk(int)':
134    6    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] redefinition of 'bool pobedauk(int)'
134    6    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] 'bool pobedauk(int)' previously defined here
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\C    Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp: At global scope:
9    15    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    [Error] new declaration 'bool random12()'
120    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] ambiguates old declaration 'int random12()'
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    In function 'int main(int, char**)':
38    2    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    [Error] jump to label 'end' [-fpermissive]
28    8    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    [Error]   from here [-fpermissive]
33    12    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    [Error]   crosses initialization of 'classgame game'
        C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    In function 'bool random12()':
42    15    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\cubic.cpp    [Error] new declaration 'bool random12()'
120    5    C:\Users\Àäìèíèñòðàòîð\Desktop\C++\cubic\classgame.h    [Error] ambiguates old declaration 'int random12()'
Post's attachments

cubic.rar 1.39 mb, 100 downloads since 2014-03-27 

Problem... Problem... Problem... Problem... Problem...

2

Re: Проблема з программою. Вона всередині.

На превеликий жаль, щоб розгорнуто відповісти на питання "що тут не так", треба писати цілу книгу. На щастя, такі книги - підручники з C++ - вже існують, і вам не обов'язково звертатися сюди, щоб їх дістати.
Пару зауважень дам:
1. Ніколи не користуйтеся goto. Ну, хіба що замовник сопить над плечем і зривається контракт в 100500 баксів. Але й тоді в першому ж патчі прибирайте goto.
2.

        classload load;
        load.name=name;
        load.load();

можна (і треба) замінити одним конструктором з параметром.
3. Ви включаєте один і той самий файл кілька разів. Користуйтеся include guards. Власне, більша частина помилок - саме це.
4. Решта помилок - це повторне проголошення функції random12 і goto через створення змінної game.

Подякували: Krip4yk1

3

Re: Проблема з программою. Вона всередині.

koala написав:

На превеликий жаль, щоб розгорнуто відповісти на питання "що тут не так", треба писати цілу книгу. На щастя, такі книги - підручники з C++ - вже існують, і вам не обов'язково звертатися сюди, щоб їх дістати.
Пару зауважень дам:
1. Ніколи не користуйтеся goto. Ну, хіба що замовник сопить над плечем і зривається контракт в 100500 баксів. Але й тоді в першому ж патчі прибирайте goto.
2.

        classload load;
        load.name=name;
        load.load();

можна (і треба) замінити одним конструктором з параметром.
3. Ви включаєте один і той самий файл кілька разів. Користуйтеся include guards. Власне, більша частина помилок - саме це.
4. Решта помилок - це повторне проголошення функції random12 і goto через створення змінної game.

нуу... мені подобається goto... що у ньому поганого і для чого він тоді зроблений?

classload load=load.load(name);
так?

цього не розумію.

цього теж не зовсім зрозумів.

Problem... Problem... Problem... Problem... Problem...

4 Востаннє редагувалося koala (28.03.2014 06:27:34)

Re: Проблема з программою. Вона всередині.

1. Спагеті-код(рос.).
2. Правильно оголосіть функцію - і робіть

classload load(name);

3. Ви взагалі в курсі, що #include робить? Якщо ні - перший абзац попередньої відповіді прочитайте.
4. Ви знаєте, що таке проголошення функції? Якщо ні - дивіться посилання в попередньому пункті.

5

Re: Проблема з программою. Вона всередині.

І заголовок теми змініть...