Форум программистов, компьютерный форум 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"); ? подробнее

Показать сообщение отдельно
dimcoder
Полярный
453 / 426 / 66
Регистрация: 11.09.2011
Сообщений: 1,126

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

18.11.2011, 10:00. Просмотров 3033. Ответов 17
Метки (Все метки)

Доброго всем времени суток. Итак, столкнулся с одной непонятной вещью, связанной с классами, а точнее с private элементами. Вот код:

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
38
#include <iostream.h>
#include <conio.h>
 
class array
{
   public:
 
   array(int = 10);
 
   int getsize(array&);
 
   private:
 
   int size;
};
 
array::array (int y)
{
   size = y;
}
 
array::getsize(array &a)
{
   return a.size;   //По идее компилер должен выдавать ошибку так как я пытаюсь получить доступ к закрытому элементу !
}
 
main ()
{
   array a, b(200);
 
   cout << a.getsize(b) << endl;
 
   getch();
 
   clrscr();
 
   return 0;
}
Выводит 200.

Почему компилятор не выдаёт ошибку? Инкапулсуляция ф большой и тёмной ж? Ну а если серьёзно, то у меня пока выресовывается одно объяснение: объекты одного и того же класса имеют доступ к закрытым элементам того же класса по средствам функций элементам. Объясните пожалуйста чайнику что к чему.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru