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

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

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

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

16.12.2013, 21:25. Просмотров 256. Ответов 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; и, естественно, все обнуляется.

Надеюсь, что вы меня поняли)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2013, 21:25     Работа с классами
Посмотрите здесь:

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

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

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

работа с классами в С++ - C++
Пусть есть class.срр, в котором описан класс MyClass{ public: int i; ... } Есть файл main.cpp, в нем я использую...

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

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

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

Добавлено через 44 секунды
Цитата Сообщение от chedman Посмотреть сообщение
Создай массив указателей, т.е. через оператор new и пользуйся объектами они будут в памяти пока явно их не удалишь оператором delete.
Спасибо, сейчас попробую
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 минуты
Чета в коде класса нет определения конструктора по умолчанию.
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();
    }
 
}
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 использовать, а то утечка памяти не есть хорошо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2013, 22:10     Работа с классами
Еще ссылки по теме:

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

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

Работа с классами - C++
Привет!!! Есть задачка: &quot;Определите класс Oper, содержащий идентификатор типа ld (string или C-строка) и операцию (указатель на...

Работа с классами - C++
Помогите с задачей, пожалуйста! Условие на фотографии: Перепечатывайте задание на форум.


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

Или воспользуйтесь поиском по форуму:
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
16.12.2013, 22:10  [ТС]     Работа с классами #7
А как правильно создать массив указателей ?
Team * team = new Team[sizeArr];
Что-то такое?)
Yandex
Объявления
16.12.2013, 22:10     Работа с классами
Ответ Создать тему
Опции темы

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