Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
5 / 5 / 3
Регистрация: 10.09.2013
Сообщений: 51

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

16.12.2013, 21:25. Показов 728. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Вот у меня есть класс Team
team.h
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
#pragma once
#include <string>
using namespace std;
 
class Team{
public:
    Team();
    void setname(string);
    string name();
    void setscore(int);
    int score();
    
    string firstTeam();
    void setFirstTeam(string);
    void setFirstScore(int);
    int firstScore();
    
    string secondTeam();
    void setSecondTeam(string);
    void setSecondScore(int);
    int secondScore();
     
private:
    string _name;
    int _score;
    
    string _firstTeam;
    int _firstScore;
    
    string _secondTeam;
    int _secondScore;
};
team.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
#include "team.h"
 
void Team::setname(string x){
    _name = x;
}
 
string Team::name(void){
    return _name;
}
 
void Team::setscore(int y){
    _score = y;
}
 
int Team::score(void){
    return _score;
}
// -----------------------------------------------
void Team::setFirstScore(int y1){
    _firstScore = y1;
}
 
int Team::firstScore(void){
    return _firstScore;
}
 
void Team::setFirstTeam(string x1){
    _firstTeam = x1;
}
 
string Team::firstTeam(void){
    return _firstTeam;
}
// ------------------------------------------------
void Team::setSecondScore(int y2){
    _secondScore = y2;
}
 
int Team::secondScore(void){
    return _secondScore;
}
 
void Team::setSecondTeam(string x2){
    _secondTeam = x2;
}
 
string Team::secondTeam(void){
    return _secondTeam;
}
И я в другом классе Load (тут я считываю данные из файла) пишу:
C++
1
2
3
4
team[i].setFirstTeam(name1);
        team[i].setSecondTeam(name2);
        team[i].setFirstScore(score1);
        team[i].setSecondScore(score2);
Так вот как теперь мне использовать эти данные в другом, уже 3ем классе? Я там заново объявляю Team * play; и, естественно, все обнуляется.

Надеюсь, что вы меня поняли)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2013, 21:25
Ответы с готовыми решениями:

Работа с классами
Здравствуйте, я здесь первый раз, если что извините, за неккоректность, ввода или задания вопроса Я написал (например): class Figure...

Работа С Классами
Привет Всем , Перехожу С делфи ))) Вот никак не пойму Вот Эту хрень в нутри класса Обрывок из струпа ...

Работа с классами
Добрый день, помогите написать программу которая создаёт класс Bool – логические переменные. Определить операторы &quot;+&quot; –...

6
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
16.12.2013, 21:40
Создай массив указателей, т.е. через оператор new и пользуйся объектами они будут в памяти пока явно их не удалишь оператором delete.
0
5 / 5 / 3
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 21:41  [ТС]
Цитата Сообщение от NikitaQ Посмотреть сообщение
Я там заново объявляю Team * play; и, естественно, все обнуляется.
"Я там заново объявляю Team * team; и, естественно, все обнуляется."

Добавлено через 44 секунды
Цитата Сообщение от chedman Посмотреть сообщение
Создай массив указателей, т.е. через оператор new и пользуйся объектами они будут в памяти пока явно их не удалишь оператором delete.
Спасибо, сейчас попробую
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
16.12.2013, 21:45
В коде будет типа так
C++
1
2
3
4
team[i]->setFirstTeam(name1);
        team[i]->setSecondTeam(name2);
        team[i]->setFirstScore(score1);
        team[i]->setSecondScore(score2);
Добавлено через 3 минуты
Чета в коде класса нет определения конструктора по умолчанию.
0
5 / 5 / 3
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 21:48  [ТС]
Цитата Сообщение от chedman Посмотреть сообщение
Создай массив указателей, т.е. через оператор new и пользуйся объектами они будут в памяти пока явно их не удалишь оператором delete.
Вот метод loadData класса Load
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Load::loadData(ifstream& file) {
    file >> sizeArr;
 
    team = new Team[sizeArr];
    
    for (int i=0; i<sizeArr; i++) {
        string name1 = "", name2 = "";
        int score1, score2;
        file >> name1 >> score1 >> score2 >> name2;
       
        team[i].setFirstTeam(name1);
        team[i].setSecondTeam(name2);
        team[i].setFirstScore(score1);
        team[i].setSecondScore(score2);
        
        Table *table = new Table();
        table->calculating(sizeArr);
    }
}
А как мне объявить в классе table?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void Table::calculating(int size) {
 
    Team * team; // Что тут должно быть?
    
 
    for (int i=0; i<size; i++) {
        team[i].firstTeam();
        team[i].secondTeam();
        team[i].firstScore();
        team[i].secondScore();
    }
 
}
0
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
16.12.2013, 22:07
Я думаю передавать надо не только размер массива, но и указатель на массив.

Добавлено через 49 секунд
C++
1
2
void Table::calculating(int size,  Team * team)
{...
Не забудь delete использовать, а то утечка памяти не есть хорошо.
1
5 / 5 / 3
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 22:10  [ТС]
А как правильно создать массив указателей ?
Team * team = new Team[sizeArr];
Что-то такое?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.12.2013, 22:10
Помогаю со студенческими работами здесь

Работа с классами
Здравствуйте. Есть код, компиляция происходит нормально, Dev-C++ не выдаёт никаких ошибок. Но когда запускаю программу и начиная там...

Работа с классами
Не знаю как правильно задать вопрос, поэтому приведу пример. У меня есть класс матрица как лучше реализовать операцию сложения матриц? Я...

Работа с классами
Программа работает некорректно... не выводит студентов введенных с клавиатуры.... :( выводит только и сравнивает только этих: ...

Работа с классами
Составить описание объектного типа TMatr, что обеспечивает размещение матрицы произвольного размера с возможностью изменения числа строк и...

Работа с классами
Для практики на c++, делаю небольшую игрушку. Возникла проблема с присваиванием класса. // RPG___ForCyberForum.cpp: определяет точку...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru