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

структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой? - C++

Восстановить пароль Регистрация
 
Andrew John
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 5
26.12.2011, 01:14     структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой? #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
[SIZE="2"]struct Time
 
struct Time
 
{
    char Month[20];
    int Mon;
    int Tue;
    int Wed;
    int Thu;
    int Fri;
    int Sat;
    int Sun;
    Time& Time::operator = (Time&);
 
    struct Work
    {
        char Week[20];
        int FullTime;
        int Study;
        int School;
        int EnglishCompCenter;
        double Free();
        double AverageBusyHrs();
        double Total();
        Time::Work& operator = (Time::Work&);
    };
 
};[/SIZE]
Можно ли сделать запись данных так, чтобы объекты вложенной структуры конкретизировали объекты первой, т.е. "видели друг друга" ? Пишу такое:

C++
1
std::istream& operator >> (istream& obj, [COLOR="Red"]Time::Work& in[/COLOR])  -
Вот тут при перегрузке оператора >> как я понимаю, у меня не получается...
Наверное, нужно перегружать оператор >> << для обеих структур или есть другой способ?

C++
1
2
3
4
5
6
7
8
9
std::istream& operator >> (istream& obj, Time::Work& in)
{
    cout<<"Pls., input the Month ->"<<"\n";
    obj.getline(in.Month, 20);
    cout<<"Input the Week # "<<"\n";
    obj>>in.Work::Week;
    obj>>in.Time::Mon; [COLOR="red"]=> не видит объект Mon из первой структуры[/COLOR] 
 
}

Спасибо за любой ответ!

А,
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 01:14     структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой?
Посмотрите здесь:

Структура. Поиск по структуре. C++
Присвоение значений элементам вложенной структуры C++
C++ Как получить доступ к объектам set-множества? (STL)
Структура в структуре C++
C++ структура в структуре
C++ Структура в структуре. Как считать?
Друзья шаблонного класса. Использование вложенной в класс структуры C++
C++ Найти элементы, которые есть в первой структуре, но нет во второй

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
26.12.2011, 07:37     структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой? #2
Честно говоря не с первого разо до меня дошло что такое
C++
1
[COLOR="Red"].....[/COLOR]
в вашем коде. наглядный пример того что правильно поставленная задача уже половина решения. К сожалению не в данном случае. Ну да ладно. Теперь по существу.

Я сделал то что вам надо но по мне это, простите, быдлокод какойто. Лучше написать нармальные классы и перегрузить почеловечески операторы которые вам надо.

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
#include <iostream>
using std::istream;
using std::cout;
using std::cin;
 
struct Work {
    char Week[20];
    int FullTime;
    int Study;
    int School;
    int EnglishCompCenter;
};
 
struct Time {
    friend istream &operator>>(istream &, Time &);
    char Month[20];
    int Mon;
    int Tue;
    int Wed;
    int Thu;
    int Fri;
    int Sat;
    int Sun;
    Work work;
};
 
istream &operator>>(istream &input, Time &time) {
    input >> time.Month;
    input.ignore(); //skip space
    input >> time.work.School;
    return input; // enables
}
 
int main() {
 
    Time myTime;
    cout << "Please enter month name and school number divided by space\n";
    cin >> myTime;
 
    
    cout << myTime.Month << " " << myTime.work.School;
 
    cin.ignore();
    cin.get();
 
}
Yandex
Объявления
26.12.2011, 07:37     структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой?
Ответ Создать тему
Опции темы

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