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

Доступ к закрытым элементам класса - Вопрос - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Builder Многоязычный интерфейс в C++ Builder http://www.cyberforum.ru/cpp-beginners/thread386397.html
Здравствуйте... Хочу написать программу, которая поддерживает выбор языков... Сделал кое что... с помощью форм... То есть когда выбираю один язык одно окно закрывается, другое открывается. Но при попытке закрыть окно формы 3(условно, имеется ввиду окно проргаммы на другом языке) среда программирования зависает... Знаю, многоязычность совсем по другому организовывается, но я новичок в...
C++ Всё таки хочу снести отсебятину на тему размерных величин class TLenghtUnit { private: static TLenghtUnit *Base; double k1; double k2; TLenghtUnit *u; public: TLenghtUnit (TLenghtUnit &Unit, double k1, double k2) // Unit - ссылка на существующую величину. Декларация TLenghtUnit x(y, k1, k2) означает k1*x=k2*y. Потом придумаю, как лучше назвать параметры. { http://www.cyberforum.ru/cpp-beginners/thread386391.html
Составить частотный словарь вводимого текста C++
Составить частотный словарь вводимого текста (несколько строк) тоесть распечатать строку следующим образом: справа от каждого слова-частоту, с которой оно встретилось.
Исключения C++
Как бросить исключение выхода за границы массива? Как его поймать? Что делать после отбрасывания? TItem & TArray::operator (unsigned int index) { if {Index>NumberOfData} { //Что сдесь надо написать? } else {
C++ Классы. Доступ к созданному объекту. http://www.cyberforum.ru/cpp-beginners/thread386371.html
Доброе утро, форум.:friends: Имеется код, чисто для примера. файл book.h #ifndef BOOK_H #define BOOK_H struct Book {
C++ Для чего нужна функция errno_t err? Почему в Visual C++ 5.0 нужно вводить не FILE *fp; fp = fopen("File" , "w"); ,а FILE *fp; errno_t err; err = fopen_s(&fp, "File" , "w"); ? подробнее

Показать сообщение отдельно
Bers
Заблокирован
18.11.2011, 10:49     Доступ к закрытым элементам класса - Вопрос
Цитата Сообщение от dimcoder Посмотреть сообщение
Ы Можно ли оградить каждый объект класса такими же заборами? Догадываюсь что нет.
Можно ли оградить объект от знания об устройстве других объектов своего же класса?
Можно. Только это - идиотизмом попахивает.

Добавлено через 2 минуты
Цитата Сообщение от dimcoder Посмотреть сообщение
Приватные методы - это что не одно и то же что и методы в приватной зоне.
Это одно и тоже.

Но вообще, я подумал, что у вас какие то свои понятия просто имеются. Что бы убедится, что мы понимаем друг друга правильно, давайте уточним:

Что такое по вашему "приватный метод" ?
Что такое по вашему "метод, который находится в приватной зоне" ?

В чем между ними принципиальное различие?

Добавлено через 6 минут
Ниже представлен код с пояснением в комментариях.

Во втором случае класс "отказывается" выполнять приведение типов.
Технически он "может" и даже "умеет". Но на деле - отказывается это сделать.

Тот, кто поймёт почему - тот поймёт, что такое инкапсуляция.

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
struct sData { int a,b; };
 
struct CTest:public sData 
{ 
    CTest():sData(){} 
};
 
struct CTest1:protected sData 
{ 
    CTest1():sData(){} 
};
 
int main()
{
    CTest test;
    CTest1 test2;
 
    //1 Случай.
    //приведение в стиле си
    sData temp = (sData) test;  //работает
    
    //приведение в стиле с++
    sData temp1 =  static_cast<sData>(test); //работает
 
 
    //2 Случай.
    //приведение в стиле си
    sData temp3 = (sData) test2; //ошибка компиляции
    
    //приведение в стиле с++
    sData temp4 =  static_cast<sData>(test2); ////ошибка компиляции
 
    //error C2243: приведение типов: 
    //преобразование "CTest1 *" в "const sData &" существует, но недоступно
    
   return 0;
}
 
Текущее время: 22:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru