Чем отличается Struct от Class ?

  • Автор темы -
  • Дата начала

Гость
#1
Ходил устраиваться на работу мне задали этот вопрос я подумал и понял что я этого не знаю вот хочу узнать?
Просьбо отвечать только тем кто действительно знает не надо высказывать предположения типа может поэтому и все такое )
 

grigsoft

Well-Known Member
15.11.2005
735
0
#2
В С++ вроде бы только тем что все члены структуры по умолчанию - public, а в классе - protected.
 
04.09.2006
2 566
2
#3
<!--QuoteBegin-grigsoft+15:03:2007, 07:36 -->
<span class="vbquote">(grigsoft @ 15:03:2007, 07:36 )</span><!--QuoteEBegin-->а в классе - protected.
[snapback]59085" rel="nofollow" target="_blank[/snapback]​
[/quote]
В классе - private (Страуструп, 3 издание, глава 10.2.8)
 

grigsoft

Well-Known Member
15.11.2005
735
0
#4
Гм. Всегда считал что protected. Полез смотреть - и правда, private, спасибо. Впрочем, я все равно всегда явно указываю, так что не важно :)
Да, вот тут еще указывают разницу (http://www.codeguru.com/forum/showthread.php?t=332571) - класс наследуется как private по умолчанию, а структура - как public. Но это еще надо проверить.
 
04.09.2006
2 566
2
#5
<!--QuoteBegin-grigsoft+15:03:2007, 09:43 -->
<span class="vbquote">(grigsoft @ 15:03:2007, 09:43 )</span><!--QuoteEBegin-->класс наследуется как private по умолчанию, а структура - как public
[snapback]59097" rel="nofollow" target="_blank[/snapback]​
[/quote]
Страуструп, раздел 15.3.2:
Спецификатор доступа к базовому классу можно опустить. В этом случае, если базовым является класс, наследование будет закрытым, а если базовой является структура - то открытым.
 

Гость
#7
И че все отличия?
Если вот так просто читать Страуструпа то это даже не запомнится!
Только когда ты напоришься на ошибку связанную с этим!
Может есть еще что нибудь существенное?

Никак дальше 150 страниы не дочитаю Страуструпа! Надо дочитать!)
 

grigsoft

Well-Known Member
15.11.2005
735
0
#8
Не усложняй без необходимости. Код, генерируемый для структур и классов ничем не отличается. Думаю, структуры были оставлены для совместимости и облегчения перехода С-программистов. По этому поводу надо бы Эволюцию С++ почитать, никак руки не дойдут. Если интересно - почитай, думаю там будет об этом что-нибудь.
 
04.09.2006
2 566
2
#9
<!--QuoteBegin-Щенок+15:03:2007, 20:19 -->
<span class="vbquote">(Щенок @ 15:03:2007, 20:19 )</span><!--QuoteEBegin-->Может есть еще что нибудь существенное?
[snapback]59177" rel="nofollow" target="_blank[/snapback]​
[/quote]
Больше ничего нет. Из Страуструпа: "Структура есть класс, все члены которого по умолчанию являются открытыми". Все различия обозначены выше. Вот только использовать тот же Страуструп рекомендует их несколько по разному