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

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

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

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

22.03.2014, 00:00. Просмотров 407. Ответов 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 члены класса
Посмотрите здесь:

Функция-друг не видит члены класса private - C++
#include &lt;iostream&gt; using namespace std; class Phone{ friend ostream &amp; operator&lt;&lt;(ostream&amp;,const Phone&amp;); private: int number; ...

Перевод class из public в private - C++
Помогите пожалуйста, требуется перевести в данной программе классы из public в private Вот код: #include &lt;iostream&gt; #include...

LNK2019: о private и public в классе - C++
Всем суп, есть беда: // &quot;NAbstractNumber.h&quot; class NAbstractNumber{ NAbstractNumber(){}; virtual std::string toString(int...

Избавиться от public, заменив его на private - C++
Добрый всем день. Подскажите как мне можно полностью избавиться от public, заменив его на private? И как избавиться от глобальных...

Private и public секция на одной странице памяти - C++
Здравствуйте, разве правильно, что private и public секция экземпляра класса находятся на одной странице памяти? Можно же из функции...

Наследование. Помогите с этими public, protected. private - C++
Вот код, в нем вылетает ошибка Unit2.cpp(16): E2251 Cannot find default constructor to initialize base class 'My' в файле unit2.cpp во...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
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
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
22.03.2014, 00:31     Private и public члены класса #4
Цитата Сообщение от __sirroko Посмотреть сообщение
Как тогда лучше офорлять?
Get и Set можно предусмотреть для внешнего использования. Внутри класса можно оставить как есть. Мы не нарушаем инкапсуляцию этим.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 00:35     Private и public члены класса
Еще ссылки по теме:

Вопрос про Спецификаторы доступа Public и Private - C++
Читаю Дейтлов... Дошел до объяснения спецификаторов и не могу понять 2 предложения: Еще: class GradeBook { public: ...

Рекомендация: сначало public, потом protected/private - C++
На хабре есть статья &quot;90 рекомендаций по стилю написания программ на C++&quot;. Интересует вот этот пункт: 44. Разделы класса public,...

Для чего нужны модификаторы protected, private, public - C++
подскажите, кто в курсе, зачем вообще нужны эти модификаторы доступа? ведь, все их можно обойти... сейчас курю Страуструпа &quot;Дизайн и...

Как переделать с public на private и создать методы для закрытых полей? - C++
Очень простой вопрос , но я только сегодня начал учить классы и возник такой вопрос - Как переделать с public на private и создать методы...


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

Или воспользуйтесь поиском по форуму:
__sirroko
4 / 4 / 3
Регистрация: 03.03.2013
Сообщений: 55
22.03.2014, 00:35  [ТС]     Private и public члены класса #5
Спасибо! Разобрался)
Yandex
Объявления
22.03.2014, 00:35     Private и public члены класса
Ответ Создать тему
Опции темы

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