Есть ли разница между структурой в С++ и структурой в С#?
Есть ли разница между структурой в С++ и структурой в С#?
Ответ 1
В С# вы используете структуры для определения типов значений (в отличие от ссылочных типов, объявленных class
es).
В С++ структура - это то же самое, что и класс со стандартным уровнем доступности public
.
Итак, вопрос должен быть: строятся в С#, отличные от классов в С++, и, да, они: вы не можете получить из С# structs, у вас не может быть виртуальных функций, вы не можете определить конструкторы по умолчанию, у вас нет деструкторов и др.
Ответ 2
Структуры на С# очень отличаются от классов, см. Структуры против классов для более
Структуры в С++ идентичны классам, EXCEPT, что члены являются общедоступными по умолчанию. Кроме того, С++-структура может делать все, что может сделать класс С++.
Ответ 3
Да.
structs в С# являются старыми, по значению, типами данных (в отличие от классов, которые являются ссылочными и содержат информацию OO)
structs в С++ - это просто класс, открытый по умолчанию.
Ответ 4
Вы пытаетесь взаимодействовать между управляемыми С++ и С#? Если это так, есть расширения для С++, чтобы это разрешить: см. ссылка
Ответ 5
С# struct - управляемый код, который будет освобожден мусором С#, когда никто больше не обратится к нему. Его деструктор вызывается всякий раз, когда сборщик мусора решает его очистить.
Структура С++ - это неуправляемый объект, который вы должны очистить самостоятельно. Это деструктор, как ожидается, вызывается при его удалении или выходит за рамки.