Тем кто усиленно изучал C++, может показаться не обычным то что, структура таки отличается от класса, меня это например удивило, и я даже один раз ошибся.
Сейчас попробую описать главные отличия.
Сейчас попробую описать главные отличия.
- Структура не может наследовать другой класс или структуру (интерфейс можно).
- Структуру нельзя унаследовать.
- Если объявить переменную с типом структуры, то там будет хранится структура. а не ссылка на неё, как в случае с классом.
- Все члены структуры по умолчанию public.
- Члены структуры не могут быть protected.
- Структура не содержит деструктора.
struct
tempStruct
{
public int
i;
}
class
tempClass
{
public int
i;
}
tempClass
tc = new
tempClass();
tempClass
tc2 = new
tempClass();
tempStruct
ts;
tempStruct
ts2;
tc
= tc2;
tc2.i
= 10;
ts.i
= 10;
ts2
= ts;
ts2.i
= 20;
в результате
tc.i == 10;
tc2.i == 10;
ts.i == 10;
ts2.i == 20;
При работе с классами, у нас передаются ссылки по переменным. А в случаи со структурами они полностью копируются. Так же, при работе с unsafe кодом, указатели могу ссылаться на структуру при условие что в ней нету ссылочных значений. С классами указатели работать не могут, только с их полями.
Комментариев нет:
Отправить комментарий