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

Наследование и защищенные члены - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс для работы с матрицами 2х2 http://www.cyberforum.ru/cpp-beginners/thread275028.html
Доброго времени суток. Очень нужна ваша помощь . Мне нужно создать класс , обеспечивающий работу с матрицами 2х2 . В общем то , описание класса есть , меню для диалога с пользователем есть . Проблема в правильном вызове функций . Я никогда не занимался ООП и очень на вас надеюсь. Вот архив со всем проектом . Программа запускается , но пока ничего не делает ) Заранее спасибо за внимание и за...
C++ Векторное произведение Помогите пожалуйста написать программу на ВС31 или DevCpp, вот условие ввести коорбинаты N векторов на плоскости. Написать функцию, определяющую модуль векторного произведения двух векторов. Используя эту функцию найти максимальный модуль векторного произведения пары векторов. Алгоритм осуществить используя структуры. http://www.cyberforum.ru/cpp-beginners/thread275020.html
C++ Модули. Многофайловые проекты
Определить функцию, возвращающую НОД нескольких чисел. Выполнить перегрузку функции для следующих типов параметров: 7.1. Два параметра типа int. 7.2. Два параметра типа long. 7.3. Два параметра типа float. 7.4. Два параметра типа double.
Перегрузка функций C++
Определить функцию, возвращающую количество недель до конца года. Выполнить перегрузку функции для следующих типов параметров: 7.1. Структура «дата» (год, месяц, день). 7.2. Три целочисленных параметра: год, месяц, день. 7.3. Два целочисленных параметра: месяц, день (считать передаваемые числа датой текущего года).
C++ Max и Min в Си++ http://www.cyberforum.ru/cpp-beginners/thread275004.html
сформировать одномерный массив целых чисел используя ДСЧ. расспечатать полученный массив поменять местами мах и мин удалить из массива все эл. превышающие его среднее значение более чем на 10% распечатать полученный массив. #include <iostream.h> #include <conio.h>
C++ std::list присвоение указателю на структуру итератора Написал пример для показа проблемы // Почему я не могу указателю на структуру присвоить итератор? // Для sdt::vector это работает а для std::list нет #include "stdafx.h" #include <iostream> #include <list> #include <vector> using namespace std; подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
13.04.2011, 18:12     Наследование и защищенные члены
Ну у меня в учебнике написано по поводу protected
"Член может быть доступен из функции, только если она член класса или подкласса"

То есть вроде как всё верно, не фиг через адреса объектов, которые не являются старшими родственниками, получать доступ к приватным членам.

А тогда тем страннее выглядит определение set в классе User
C++
1
2
3
4
5
6
        virtual bool set(User* user, char *name)
        {
                cout<<"Error - access denied"<<endl;
                cout << user->name;
                return false;
        }
Это компилится. То есть В ЭТОМ случае компилятор почему-то согласен- да, пусть будет объект
A типа User и объект B типа User. И мы спокойно передадим объекту A адрес объекта B. А тот, в свою очередь, даст объекту A значение name.

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