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

Работа с классами - C++

Восстановить пароль Регистрация
 
Alek70694
 Аватар для Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 240
04.12.2013, 20:44     Работа с классами #1
Класс соревнование. В каждом соревновании по три участника и произвольное число туров. После проведения туров объявляется победитель.

Многочисленные ошибки, из за чего?

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
#include <iostream>
#include <cstring>
#include "Bow.h"
using namespace std;
 
class ArcheryCompetition
{
    //компонентные переменные
private:
    //переменные
    int rounds;
    float redScore;
    Bow red;
    float blueScore;
    Bow blue;
public:
    //конструктор
    ArcheryCompetition (int lrounds);
    //деструктор
    ~ArcheryCompetition();
    //методы
    int complete (void);
};
 
//Создает объект ArcheryCompetition
ArcheryCompetition::ArcheryCompetition(int lrounds):
        rounds (lrounds), red (Bow("красный")), blue (Bow("синий")), redScore(0), blueScore(0)
{
 
}
//деструктор
~ArcheryCompetition::ArcheryCompetition()
{
 
}
 
//основа игры
//проводит состязание и определяет, кто победил
int ArcheryCompetition::complete()
{
    //провести все туры отслеживая результаты
    for (int i = 0; i < rounds; i++)
    {
        cout << "Тур номер " << i + 1 << "." << endl;
        red.draw();
        blue.draw();
 
        redScore = (red.fire() + redScore * i) / (i+1);
        blueScore = (blue.fire() + redScore * i) / (i+1);
    }
    //определяем кто победил
    if (redScore == blueScore)
        cout << "Ничья!\n";
    esle if (redScore < blueScore)
        cout << "Синий лук получает руку принцессы!\n";
        else
            cout << "Красный лук получает руку принцессы!\n";
    return 1;
}
void main (void)
{
    //управляющая функция
    //создает объект и вызывает соответствующие методы
    ArcherCompetition plymouthSquare(2);
    plymouthSquare.compete();
    int get = 0;
    cin >> get;
}
Миниатюры
Работа с классами  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2013, 20:44     Работа с классами
Посмотрите здесь:

C++ Работа с классами
работа с классами C++
C++ Работа с классами
Работа с классами C++
C++ Работа с классами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grenuj
6 / 6 / 0
Регистрация: 30.11.2013
Сообщений: 25
04.12.2013, 20:54     Работа с классами #2
Цитата Сообщение от Alek70694 Посмотреть сообщение
void main (void)
мэин должна возвращать int
C++
1
int main()
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.12.2013, 21:03     Работа с классами #3
Цитата Сообщение от Alek70694 Посмотреть сообщение
из за чего?
Компилятор же пишет из-за чего, даже строчки указывает.
igor921
Заблокирован
04.12.2013, 21:46     Работа с классами #4
Оператора esle нет, есть оператор else....
Alek70694
 Аватар для Alek70694
4 / 4 / 0
Регистрация: 27.10.2012
Сообщений: 240
04.12.2013, 22:17  [ТС]     Работа с классами #5
Ну хорошо, это самые очевидные, а остальные?
FloraWinx
 Аватар для FloraWinx
4 / 4 / 1
Регистрация: 05.10.2013
Сообщений: 122
04.12.2013, 23:55     Работа с классами #6
если они такие очевидные почему вы их не увидели ?)
igor921
Заблокирован
05.12.2013, 04:13     Работа с классами #7
В 54 строке поставьте скобки после if. Если используется конструкция
C++
1
if(){ } else
то скобки обязательны
И приведите код класса Bow...
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 05:11     Работа с классами #8
Цитата Сообщение от igor921 Посмотреть сообщение
В 54 строке поставьте скобки после if. Если используется конструкция
C++
1
if(){ } else
то скобки обязательны
Не обязательны.
else к скобкам вообще никакой роли не играет. Если после условного оператора используется только один вызов, то можно опустить скобки.

----------------------------------------
Добавлено через 10 минут
C else в В 54 строке вижу уже разобрались.
Реализация деструктора не правильно указана
C++
1
~ArcheryCompetition::ArcheryCompetition()
C++
1
ArcheryCompetition::~ArcheryCompetition()
Имя объекта в создании экземпляра не правильная
C++
1
ArcherCompetition plymouthSquare(2);
C++
1
ArcherCompetition plymouthSquare(2);
экземпляр вызывает не существующий метод объекта
C++
1
plymouthSquare.compete();
C++
1
plymouthSquare.complete();
Вот и всё.

Добавлено через 2 минуты
Цитата Сообщение от grenuj Посмотреть сообщение
мэин должна возвращать int
C++
1
int main()
Она не обязана возвращать int.
main может быть воидной и не возвращать ничего, а может быть int и тоже кстати может ничего не возвращать.
Зависит от конкретных целей.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.12.2013, 12:26     Работа с классами #9
Цитата Сообщение от rescr1pt Посмотреть сообщение
Она не обязана возвращать int.
А как же стандарт (3.6.1.)?
"It shall have a return type of type int, but otherwise its type is implementation-defined."
mingw, например, void main() не скомпилирует.
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 14:25     Работа с классами #10
Цитата Сообщение от alsav22 Посмотреть сообщение
А как же стандарт (3.6.1.)?

mingw, например, void main() не скомпилирует.
Так и знал, что будут этим подпунктом стандарта тыкать. Этому подпункту стандарта следуют только GNU-подобные компиляторы.
alsav22
05.12.2013, 14:32
  #11

Не по теме:

Цитата Сообщение от rescr1pt Посмотреть сообщение
Этому подпункту стандарта следуют только GNU-подобные компиляторы.
И что, от этого он перестаёт быть стандартом? (Судя по ошибкам, ТС как раз таким компилятором пользуется).
Цитата Сообщение от rescr1pt Посмотреть сообщение
Она не обязана возвращать int.
Зачем начинающих учить пренебрегать стандартом?

rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 15:04     Работа с классами #12
Цитата Сообщение от alsav22 Посмотреть сообщение
Зачем начинающих учить пренебрегать стандартом?[/OFF]

Не по теме:

Вы это спросите у преподов которые так учат и у авторов всяких книг для "начинающих".
Примеры 1, 2, 3, 4...

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 16:11     Работа с классами
Еще ссылки по теме:

C++ Работа с классами
C++ Работа с классами
C++ Работа с классами

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

Или воспользуйтесь поиском по форуму:
alsav22
05.12.2013, 16:11     Работа с классами
  #13

Не по теме:

Цитата Сообщение от rescr1pt Посмотреть сообщение
Вы это спросите у преподов которые так учат и у авторов всяких книг для "начинающих".
Вопрос к вам был. Ответ есть?

Yandex
Объявления
05.12.2013, 16:11     Работа с классами
Ответ Создать тему
Опции темы

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