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

Закрытые поля структуры. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Skirmisher
44 / 44 / 0
Регистрация: 23.05.2009
Сообщений: 92
03.08.2009, 09:52     Закрытые поля структуры. #1
Существуют ли закрытые поля структуры?
Если да, то как их описывать?

Добавлено через 39 минут 26 секунд
Ну что никто не может ответить на такой легкий вопрос?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.08.2009, 09:53     Закрытые поля структуры. #2
Цитата Сообщение от Skirmisher Посмотреть сообщение
Если да, то как их описывать?
C++
1
2
3
4
struct S {
 private:
  int data; 
};
Skirmisher
44 / 44 / 0
Регистрация: 23.05.2009
Сообщений: 92
03.08.2009, 09:58  [ТС]     Закрытые поля структуры. #3
Цитата Сообщение от zim22 Посмотреть сообщение
C++
1
2
3
4
struct S {
 private:
  int data; 
};
Тут, как репутация считается, чем больше тем создал, тем меньше репутация?
Не все этот форум меня достал я с него ухожу
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
03.08.2009, 10:38     Закрытые поля структуры. #4
Тут, как репутация считается, чем больше тем создал, тем меньше репутация?
Нет - не так.
Не все этот форум меня достал я с него ухожу
Уходи.
Тебе ответили на твой вопрос.
А если тебе не нравится ответ - может ты вопрос задал неправильно ?
Правила Фурма
2.4 Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
03.08.2009, 10:42     Закрытые поля структуры. #5
Цитата Сообщение от Skirmisher Посмотреть сообщение
Существуют ли закрытые поля структуры?
Если да, то как их описывать?
собственно в С++ класс от структуры только этим и отличается... если надо что то спрятать, используй классы, если нет смысла прятать, используй стрктуры
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
03.08.2009, 10:48     Закрытые поля структуры. #6
собственно в С++ класс от структуры только этим и отличается...
Не понял - чем именно отличается ?
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
03.08.2009, 10:52     Закрытые поля структуры. #7
Цитата Сообщение от odip Посмотреть сообщение
Не понял - чем именно отличается ?
класс от структуры (class vs struct) отличается тем сто у структуры все члены public, в то время как у класса программист им сам может назначить public, private, protected.
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
03.08.2009, 10:58     Закрытые поля структуры. #8
класс от структуры (class vs struct) отличается тем сто у структуры все члены public, в то время как у класса программист им сам может назначить public, private, protected.
А теперь - правильный ответ (:
В классе все методы и члены имеют по-умолчанию модификатор доступа private, в структуре - public. Больше различий не имеется.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
03.08.2009, 11:02     Закрытые поля структуры. #9
Цитата Сообщение от Rififi Посмотреть сообщение
класс от структуры (class vs struct) отличается тем сто у структуры все члены public, в то время как у класса программист им сам может назначить public, private, protected.
А теперь - правильный ответ (:
В классе все методы и члены имеют по-умолчанию модификатор доступа private, в структуре - public. Больше различий не имеется.
ага.. пермудрил
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.08.2009, 11:43     Закрытые поля структуры. #10
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Rififi Посмотреть сообщение
Больше различий не имеется.
имеется. при наследовании. если явно не указывать тип наследования, то для struct он public, а для class - private
***
Skirmisher, репутация ничто - главное что в голове.
BitFields
 Аватар для BitFields
49 / 47 / 3
Регистрация: 03.08.2009
Сообщений: 101
03.08.2009, 12:30     Закрытые поля структуры. #11
Цитата Сообщение от zim22 Посмотреть сообщение
имеется. при наследовании. если явно не указывать тип
Кстати кто-нибудь знает, как получить доступ к закрытому полю структуры?
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
03.08.2009, 12:51     Закрытые поля структуры. #12
Кстати кто-нибудь знает, как получить доступ к закрытому полю структуры?
Никак - компилятор не даст.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.08.2009, 12:53     Закрытые поля структуры. #13
BitFields, в таких случаях, как правило... создается или метод ,который это поле буде изменять, или поле делают protected.
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.08.2009, 13:08     Закрытые поля структуры. #14
Цитата Сообщение от BitFields Посмотреть сообщение
Кстати кто-нибудь знает, как получить доступ к закрытому полю структуры?
считаем значение из private переменной char c
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct S {
  S() : c('T'), i(10), d(12.23) { }
private:
  char c;
  int i;
  double d;  
};
int _tmain(int argc, _TCHAR* argv[])
{
  S s;  
  char res[1] = {0};
  memcpy(res, &s, 1);
 
  return 0;
}
BitFields
 Аватар для BitFields
49 / 47 / 3
Регистрация: 03.08.2009
Сообщений: 101
03.08.2009, 13:12     Закрытые поля структуры. #15
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
BitFields, в таких случаях, как правило... создается или метод ,который это поле будет изменять, или поле делают protected.
Например имеется такой код:
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
struct GeeJail
{
    bool methodState(char *changeState); 
    private: 
            char *state;
};
 
int main()
{
    GeeJail Jail;
    char *text="Gaol";
    Jail.methodState(text);
}
 
bool GeeJail::methodState(char *changeState)
{
    bool tr;
    if(changeState)
    {
    GeeJail::state=changeState;
    tr=true;
    }
    else
    {
    tr=false;
    }
    return tr;
}
В принципе, так же как и с классами можно работать, различие только
В классе все методы и члены имеют по-умолчанию модификатор доступа private, в структуре - public. Больше различий не имеется.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.08.2009, 13:15     Закрытые поля структуры. #16
Цитата Сообщение от BitFields Посмотреть сообщение
В принципе, так же как и с классами можно работать, различие только
да
BitFields
 Аватар для BitFields
49 / 47 / 3
Регистрация: 03.08.2009
Сообщений: 101
03.08.2009, 13:22     Закрытые поля структуры. #17
Цитата Сообщение от odip Посмотреть сообщение
Никак - компилятор не даст.
Что значит никак, метод создай.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
03.08.2009, 13:27     Закрытые поля структуры. #18
BitFields, ну вообще-то мы с odip подумали что вы спрашиваете про наследование, тобишь про вот этот вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    private:
        int a;
    public:
        A(): a(0) {}
};
 
class B: public A
{
    public:
        B() {}
        void Set(int x) { a = x; } // вызовет ошибку
};
BitFields
 Аватар для BitFields
49 / 47 / 3
Регистрация: 03.08.2009
Сообщений: 101
03.08.2009, 13:38     Закрытые поля структуры. #19
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
BitFields, ну вообще-то мы с odip подумали что вы спрашиваете про наследование, тобишь про вот этот вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A
{
    private:
        int a;
    public:
        A(): a(0) {}
};
 
class B: public A
{
    public:
        B() {}
        void Set(int x) { a = x; } // вызовет ошибку
};
Вроде мы тут о структурах говорим! Лучше бы тогда пример про наследованием структур.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2009, 13:41     Закрытые поля структуры.
Еще ссылки по теме:

C++ Обьеденить два поля структуры
Поля структуры внутри класса C++
C++ Шаблон функции, использующий поля структуры

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

Или воспользуйтесь поиском по форуму:
zim22
depict1
 Аватар для zim22
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
03.08.2009, 13:41     Закрытые поля структуры. #20
Цитата Сообщение от BitFields Посмотреть сообщение
Вроде мы тут о структурах говорим! Лучше бы тогда пример про наследованием структур.
замените слово class на слово struct. и пример готов.
Yandex
Объявления
03.08.2009, 13:41     Закрытые поля структуры.
Ответ Создать тему
Опции темы

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