Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Метод для изменения защищенного поля - C++

23.08.2012, 17:21. Просмотров 793. Ответов 16
Метки нет (Все метки)

Насколько безопастно данное издевательство решение?
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
#include <stdio.h>
 
class MYCLASS
{
private :
    int x;
public :
    MYCLASS() : x(23) {}
    int* Get()
    {
        return &x;
    }
    void Print()
    {
        printf("%d ", x);
    }
};
 
void main()
{
    MYCLASS tmp;
    int *b = tmp.Get();
    printf("%d ", *b);
    *b = 42;
    tmp.Print();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2012, 17:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Метод для изменения защищенного поля (C++):

Один метод для изменения нескольких атрибутов в зависимости от параметра - C++
Всем привет. Хочу написать метод в классе, который в качестве параметра принимает 2 аргумента. Один соответствует атрибуту, другой...

Класс vector (поля: координаты, 2 конструктора, метод нахождения длины вектора и метод вывода координат на экран) - C++
Здравствуйте , помогите пожалуйста с заданием. Организовать класс Вектор на плоскости – поля: координаты, 2 конструктора, метод...

Классы. Метод изменения длинны массива - C++
Начал изучать классы. Захотел сделать массив с изменяющимся размером. если я ставлю размер меньше 5, то в ячейках оказывается мусор. ...

Перегрузка класса - после изменения кода перегрузить метод - C++
class DrawPoint : public QWidget { public: DrawPoint(QWidget *p = 0) : QWidget(p){} protected: virtual void...

Разработка простейшего защищенного хранилища файлов - C++
Добрый день. У меня курсовая работа, а тема: создание защищенного хранилища файлов. Ничего сверхсложного быть не должно:...

Исследовать итерационный метод- метод касательных для решения нелинейных уравнений - C++
прочитал много всего , но сам пример реализовать никак не могу , кто может помогите F(x) = x5+5x+1=0 с...

16
cmath
Модератор
2459 / 1713 / 134
Регистрация: 11.08.2012
Сообщений: 3,293
Завершенные тесты: 6
23.08.2012, 18:44 #16
Цитата Сообщение от novi4ok Посмотреть сообщение
с hWnd не потому, что int, а потому, что HANDLE
hWnd согласен неудачно (хотя HANDLE по сути целое число собой представляет), а про класс мне уже разъяснили. Про безопасность у нас с вами разночтение получается.
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
23.08.2012, 19:55 #17
Цитата Сообщение от Hydrogen Посмотреть сообщение
hWnd согласен неудачно (хотя HANDLE по сути целое число собой представляет), а про класс мне уже разъяснили. Про безопасность у нас с вами разночтение получается.
никакого разночтения. чем гибче возможности языка, тем больше соблазн использовать какие-нибудь фокусы, при этом уговаривая себя, что это есть хорошо.
просто пойми смысл в этом private: это вещи, которые снаружи недоступные. не потому, что кто-то с нехорошей целью возьмет и изменит (возможности языка позволяют и это сделать. грохнуть можно что угодно), а в том, чтоб и самому было понятно, что относится к интерфейсу, а что - к "внутренним органам", в которые снаружи нечего лазить даже хирургам.
не знаю, чего ты в книжках начитался, но вот такое вот:
C++
1
2
3
4
5
private:
 int m_BolshojSekret;
public:
 int getBolshojSekret() { return BolshojSekret; }
 void setBolshojSekret(int bs) { BolshojSekret = bs; }
не есть "объектно-ориентированность", "инкапсуляция" или что-нибудь подобное. это - профанация концепции.
смысл более понятет здесь:
C++
1
2
3
4
5
6
7
8
9
private:
 int m_PolSekreta;
 int m_Esh4oPolSekreta;
 int m_AHerTebe;
public:
 int getBolshojSekret() { return m_AHerTebe; }
 int getBolshojSekret(char *pParol) { return ::strcmp (pParol, "parol") == 0 ? 
                       m_PolSekreta | m_Esh4oPolSekreta : m_AHerTebe; }
 void setSekret(int s) { m_PolSekreta = s & 0xffff0000; m_Esh4oPolSekreta = s & 0x0000ffff;}
1
23.08.2012, 19:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2012, 19:55
Привет! Вот еще темы с ответами:

Метод деления отрезка пополам для решения нелинейных уравнений (метод дихотомии) - C++
Здравствуйте. Помогите пожалуйста дописать программу. Вот что вымучал, но на сдаче завалили, типо нет вывода корней, не рассмотрены...

Производный класс: метод возведения в произвольную степень, и метод для вычисления логарифма числа - C++
Реализовать класс-оболочку Number для числового типа float. Реализовать методы сложения и деления. Создать производный класс Real, в...

Описать класс, содержщий два целочисленных поля, метод возвращающий сумму полей - C++
помогите пожалуйсто....осень надо((((((((((((( Описать класс содержщий два целочисленных поля, метод возвращающий сумму этих...

СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя - C++
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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