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

Тема в разделе "Общие вопросы по С и С++", создана пользователем -, 14 мар 2007.

  1. Гость

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

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    В С++ вроде бы только тем что все члены структуры по умолчанию - public, а в классе - protected.
     
  3. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--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)
     
  4. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Гм. Всегда считал что protected. Полез смотреть - и правда, private, спасибо. Впрочем, я все равно всегда явно указываю, так что не важно :)
    Да, вот тут еще указывают разницу (http://www.codeguru.com/forum/showthread.php?t=332571) - класс наследуется как private по умолчанию, а структура - как public. Но это еще надо проверить.
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--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:
     
  6. grigsoft

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Страуструп рулит, как всегда. Надо перечитать :)
     
  7. Гость

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

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

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Не усложняй без необходимости. Код, генерируемый для структур и классов ничем не отличается. Думаю, структуры были оставлены для совместимости и облегчения перехода С-программистов. По этому поводу надо бы Эволюцию С++ почитать, никак руки не дойдут. Если интересно - почитай, думаю там будет об этом что-нибудь.
     
  9. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-Щенок+15:03:2007, 20:19 -->
    <span class="vbquote">(Щенок @ 15:03:2007, 20:19 )</span><!--QuoteEBegin-->Может есть еще что нибудь существенное?
    [snapback]59177" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Больше ничего нет. Из Страуструпа: "Структура есть класс, все члены которого по умолчанию являются открытыми". Все различия обозначены выше. Вот только использовать тот же Страуструп рекомендует их несколько по разному
     
Загрузка...

Поделиться этой страницей