Re[2]: Наследование
От: jazzer Россия Skype: enerjazzer
Дата: 22.12.03 11:55
Оценка: :))
Здравствуйте, ssi, Вы писали:

ssi>Здравствуйте, Wind, Вы писали:


W>>Позор на мою не седую голову, программировал-программировал, а это не помню...


W>>Чем отлечается наследование класов в режимах PUBLIC, PROTECT, PRIVATE.?


ssi>public наследование:

ssi>атрибуты доступа сохраняются в классе наследнике: если в базовом классе метод или член public, то в наследнике тоже public; если в базовом — protected, то в наследнике — protected; если в базовом private, то в наследнике — private.

ssi>protected наследоваине:

ssi>public методы и члены базового класса становятся protected у наследника; остальное то же, что и при public наследовании: ptotected — protected, private — private.

ssi>private наследование:

ssi>все методы и члены базового класса стоновятся private у наследника.

а зачем нужно protected-наследование, можешь прочитать в соседнем топике
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Наследование
От: Wind Россия  
Дата: 22.12.03 08:11
Оценка:
Позор на мою не седую голову, программировал-программировал, а это не помню...

Чем отлечается наследование класов в режимах PUBLIC, PROTECT, PRIVATE.?
Re: Наследование
От: Socrat Россия  
Дата: 22.12.03 08:23
Оценка:
Здравствуйте, Wind, Вы писали:

W>Позор на мою не седую голову, программировал-программировал, а это не помню...


W>Чем отлечается наследование класов в режимах PUBLIC, PROTECT, PRIVATE.?


К public можно обращаться из любой функции программы, к private — только из функций-членов данного класса, а к protected — из функций-членов данного класса и его производных.
Re: Наследование
От: ssi Россия  
Дата: 22.12.03 09:53
Оценка:
Здравствуйте, Wind, Вы писали:

W>Позор на мою не седую голову, программировал-программировал, а это не помню...


W>Чем отлечается наследование класов в режимах PUBLIC, PROTECT, PRIVATE.?


public наследование:
атрибуты доступа сохраняются в классе наследнике: если в базовом классе метод или член public, то в наследнике тоже public; если в базовом — protected, то в наследнике — protected; если в базовом private, то в наследнике — private.

protected наследоваине:
public методы и члены базового класса становятся protected у наследника; остальное то же, что и при public наследовании: ptotected — protected, private — private.

private наследование:
все методы и члены базового класса стоновятся private у наследника.
Знающие не говорят, говорящие не знают. Лао Цзы
Re[2]: Наследование
От: Wind Россия  
Дата: 22.12.03 11:13
Оценка:
Спасибо
Re[2]: Наследование
От: WolfHound  
Дата: 22.12.03 11:53
Оценка:
Здравствуйте, ssi, Вы писали:

ssi>public наследование:

ssi>атрибуты доступа сохраняются в классе наследнике: если в базовом классе метод или член public, то в наследнике тоже public; если в базовом — protected, то в наследнике — protected; если в базовом private, то в наследнике — private.
То в наследнике ты его не увидишь на то он и приват...
Тоже для остальных случаев.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: Наследование
От: ssi Россия  
Дата: 22.12.03 19:46
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, ssi, Вы писали:


ssi>>public наследование:

ssi>>атрибуты доступа сохраняются в классе наследнике: если в базовом классе метод или член public, то в наследнике тоже public; если в базовом — protected, то в наследнике — protected; если в базовом private, то в наследнике — private.
WH>То в наследнике ты его не увидишь на то он и приват...
WH>Тоже для остальных случаев.

офф коз
Знающие не говорят, говорящие не знают. Лао Цзы
Re: Наследование
От: konst  
Дата: 24.12.03 07:42
Оценка:
Ещё по Саттеру добалю: public наследование выражает отношение "является", а остальные два типа -- нет, какое-либо другое, например, "использует", или
class A
{
...
};
class B: public A // класс B может полностью заменить A, т.е. "является" A
{
...
};
class С: private A // класс С не может использоваться как A
{
...
};

т.е. наследование не только для инкапсуляции.
Re: Наследование
От: Александр А. Дёмин  
Дата: 24.12.03 11:45
Оценка:
Здравствуйте, Wind, Вы писали:

W>Позор на мою не седую голову, программировал-программировал, а это не помню...

W>Чем отлечается наследование класов в режимах PUBLIC, PROTECT, PRIVATE.?

1. При открытом наследовании доступ к базовому классу является открытым, то есть реализуется отношение A "является" B (поддерживается полиморфизм).
2. При закрытом наследовании доступ к базовому закрыт, и использование методов и свойств базового класса доступно только из первого потомка и закрыто для доступа извне. В этом случае реализуется отношение "использует". Лично я предпочитаю закрытое/защищенное агрегирование закрытому и защищенному наследованию.
3. Механизм защищенного налледования аналогичем закрытому с той лишь разницей, что методы и свойства базового класса будут доступны из всех потомков.
... << RSDN@Home 1.1.0 stable >>
Re[2]: Наследование
От: jazzer Россия Skype: enerjazzer
Дата: 24.12.03 12:48
Оценка:
Здравствуйте, Александр А. Дёмин, Вы писали:

ААД> Лично я предпочитаю закрытое/защищенное агрегирование закрытому и защищенному наследованию.


У наследования есть одно неоспоримое преимущество — виртуальные функции.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[3]: Наследование
От: Oberon  
Дата: 24.12.03 13:00
Оценка:
Здравствуйте, jazzer, Вы писали:

ААД>> Лично я предпочитаю закрытое/защищенное агрегирование закрытому и защищенному наследованию.

J>У наследования есть одно неоспоримое преимущество — виртуальные функции.
Здесь не буду спорить, к тому-же плюсом наследования можно посчитать простое открытие нескольких, но не обязательно всех методов и свойств базового класса через using BaseClass::Method.
Однако из практики должен заметить, что чаще всего производный объект "является" одним базовым, а "использует" второй. Здесь уже множественное наследование.
А вот о том, стоит ли использовать множественное наследование в своих проектах, более того, не является ли это дурным тоном, сказано уже достаточно. Это, как говорится, каждый для себя сам решает.
К тому-же, запрет множественного наследования классов в новых языках, вроде Java и C#, тоже о чем-то говорит. Стоит ли использовать то, что отмирает. Хотя это уже из области философии.
... << RSDN@Home 1.1.0 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.