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

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

Войти
Регистрация
Восстановить пароль
 
__sirroko
4 / 4 / 3
Регистрация: 03.03.2013
Сообщений: 55
#1

Private и public члены класса - C++

22.03.2014, 00:00. Просмотров 390. Ответов 4
Метки нет (Все метки)

Привет!

Есть такой класс:
C++
1
2
3
4
5
6
7
class CDateTime{
private:
    qint16 year_;
    qint8 month_, day_;
    qint8 hours_, minutes_, seconds_;
 
// ...
и вот такой перегруженный оператор:
C++
1
2
3
4
5
6
7
8
9
10
11
CDateTime CDateTime::operator+(const CDateTime& obj) const
{
    CDateTime tmp = *this;
 
    tmp.seconds_ += obj.seconds_; //???
 
    if (tmp.getSeconds() > 59)
        tmp.recalculationTime();
 
    return tmp;
}
Почему в строке "???" я могу спокойно обратиться к private-членам других объектов да еще и изменять их?

А, вот этот код уже даже не компилится:
C++
1
2
3
4
5
6
7
int main()
{
    CDateTime dt;
 
    cout << "seconds_ :: " << dt.seconds_ << endl;
 
// ...
Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 00:00     Private и public члены класса
Посмотрите здесь:

Вопрос про Спецификаторы доступа Public и Private C++
Ключевые слова private, public, protected C++
C++ Наследования класса как public, private и protected
C++ Protected Private Public
C++ private, protected, public
Public и Private C++
Рекомендация: сначало public, потом protected/private C++
Public, Private, Protected (смысл применения) C++
C++ LNK2019: о private и public в классе
Перевод class из public в private C++
Избавиться от public, заменив его на private C++
C++ Функция-друг не видит члены класса private

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
6841 / 4052 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
22.03.2014, 00:17     Private и public члены класса #2
Цитата Сообщение от __sirroko Посмотреть сообщение
Почему в строке "???" я могу спокойно обратиться к private-членам других объектов да еще и изменять их?
Потому что private, public, protected действуют на уровне классов, а не объектов.
__sirroko
4 / 4 / 3
Регистрация: 03.03.2013
Сообщений: 55
22.03.2014, 00:24  [ТС]     Private и public члены класса #3
Как тогда лучше офорлять?
Оставить так как есть?
Или реализовать методы get...(), set...() (как строкой ниже)?
DrOffset
6841 / 4052 / 924
Регистрация: 30.01.2014
Сообщений: 6,855
22.03.2014, 00:31     Private и public члены класса #4
Цитата Сообщение от __sirroko Посмотреть сообщение
Как тогда лучше офорлять?
Get и Set можно предусмотреть для внешнего использования. Внутри класса можно оставить как есть. Мы не нарушаем инкапсуляцию этим.
__sirroko
4 / 4 / 3
Регистрация: 03.03.2013
Сообщений: 55
22.03.2014, 00:35  [ТС]     Private и public члены класса #5
Спасибо! Разобрался)
Yandex
Объявления
22.03.2014, 00:35     Private и public члены класса
Ответ Создать тему
Опции темы

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