Форум программистов, компьютерный форум 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
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,108
18.11.2011, 10:00     Доступ к закрытым элементам класса - Вопрос
Доброго всем времени суток. Итак, столкнулся с одной непонятной вещью, связанной с классами, а точнее с 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.

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