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

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

Войти
Регистрация
Восстановить пароль
 
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
#1

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

16.12.2013, 21:25. Просмотров 259. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2013, 21:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с классами (C++):

Работа с классами - C++
плиз помогите решить нужно написать функции которыи будут выполнять сложение, вычитание, умножение и деление допустим d1 и d3 вот то...

Работа с классами - C++
Добрый день! Я столкнулся с проблемой которую не могу решить.Суть проблемы заключается в том что в классе Interface реализуется некая...

Работа с классами - C++
Помогите написать програмку задание следующее: Создать базовый класс «Грузоперевозчик» и производные классы «Самолет», «Поезд»,...

Работа с классами - C++
Помогите плз Определите значение переменных а, х, с после выполнения следующих команд: class First { int value; public: ...

Работа с классами - C++
Почему может вывестись здесь ошибка? #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;math.h&gt; #include...

Работа с классами - C++
Добрый день, на днях наткнулся на одну статью про работу с классами и не совсем ее понял, может кто помочь внести ясность, в чем...

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

Добавлено через 44 секунды
Цитата Сообщение от chedman Посмотреть сообщение
Создай массив указателей, т.е. через оператор new и пользуйся объектами они будут в памяти пока явно их не удалишь оператором delete.
Спасибо, сейчас попробую
0
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
16.12.2013, 21:45 #4
В коде будет типа так
C++
1
2
3
4
team[i]->setFirstTeam(name1);
        team[i]->setSecondTeam(name2);
        team[i]->setFirstScore(score1);
        team[i]->setSecondScore(score2);
Добавлено через 3 минуты
Чета в коде класса нет определения конструктора по умолчанию.
0
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 21:48  [ТС] #5
Цитата Сообщение от 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
chedman
81 / 80 / 2
Регистрация: 30.10.2013
Сообщений: 251
16.12.2013, 22:07 #6
Я думаю передавать надо не только размер массива, но и указатель на массив.

Добавлено через 49 секунд
C++
1
2
void Table::calculating(int size,  Team * team)
{...
Не забудь delete использовать, а то утечка памяти не есть хорошо.
1
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 22:10  [ТС] #7
А как правильно создать массив указателей ?
Team * team = new Team[sizeArr];
Что-то такое?)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 22:10
Привет! Вот еще темы с ответами:

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

Работа с классами - C++
Класс соревнование. В каждом соревновании по три участника и произвольное число туров. После проведения туров объявляется победитель. ...

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

Работа с классами - C++
Привет всем!!!!! Пацаны помогите написать программу плиз, на завтро нужно!!!!! Тема: Классы Задание:Описати інтерфейс та реалізувати...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2013, 22:10
Ответ Создать тему
Опции темы

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