C ++ структуры и конструкторы - PullRequest
5 голосов
/ 20 июня 2011

Быстрый вопрос о структурах в C ++, на которые мне не удалось найти ответ:

Я читал, что единственное различие между структурами и классами - это видимость членов. Итак, дает ли компилятор структуру по умолчанию? (а также по умолчанию конструктор копирования, деструктор и оператор присваивания?) И можете ли вы сами определить все вышеперечисленное?

Спасибо, Иштван

Ответы [ 4 ]

11 голосов
/ 20 июня 2011

Да, это так, и да, вы можете.

1 голос
/ 20 июня 2011

Я читал, что единственная разница между структурами и классами - это видимость членов.

Это правильно. Просто отметим, что это включает унаследованные классы:

struct S1 { int m1; };
struct S2: S1 { int m2; };

В S2 и m2, и m1 имеют публичную видимость. И S2* можно заменить там, где ожидается S1*.

1 голос
/ 20 июня 2011

Да на все ваши вопросы.То же самое относится и к классам.

0 голосов
/ 20 июня 2011

В C ++ единственная разница между class и struct заключается в том, что члены класса по умолчанию являются закрытыми, а struct - членами по умолчанию public.Таким образом, структуры могут иметь конструкторы, и синтаксис такой же, как и для классов.Но только если у вас нет вашей структуры в профсоюзе.

например,

struct TestStruct {
        int id;
        TestStruct() : id(42)
        {
        }
};

Кредит идет на ответы в этом вопросе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...