Ответ 1
Другое отличие состоит в том, что
template<class T> ...
разрешено, но
template<struct T> ...
нет.
Возможные дубликаты:
C/С++ Struct vs Class
Что такое типы POD на С++?
Привет,
В С++ В двух словах, в главе 6: классы, ниже Спецификаторы доступа, упомянуто следующее:
В определении класса по умолчанию доступ для членов и базовых классов частный. В определении структуры default является общедоступным. Это единственное разница между классом и struct, хотя по соглашению некоторые программисты используют struct только для POD классов и использовать класс для всех остальных классы.
Мои вопросы здесь:
Спасибо.
Другое отличие состоит в том, что
template<class T> ...
разрешено, но
template<struct T> ...
нет.
Вы могли бы доказать себе, что нет другой разницы, пытаясь определить функцию в структуре. Я помню, что даже мой профессор колледжа, который преподавал о структурах и классах на С++, был удивлен, узнав об этом (после исправления студентом). Я верю в это. Это было забавно. Профессор продолжал говорить, каковы различия, и студент продолжал говорить: "На самом деле вы тоже можете это сделать в структуре". Наконец, проф. спросил "ОК, в чем разница", и студент сообщил ему, что единственная разница была доступность по умолчанию для участников.
Быстрый поиск Google предполагает, что POD означает "Обычные старые данные".
Классы POD представляют собой классы данных Plain-Old, которые имеют только данные и ничего больше. Есть несколько вопросов о stackoverflow о том же. Найдите здесь.
Кроме того, вы можете иметь функции как члены структур в С++, но не в C. Вам нужно иметь указатели на функции как члены в структурах на C.
Хорошо, POD означает простые старые данные. Обычно это означает structs
без каких-либо методов, потому что эти типы затем используются для структурирования нескольких данных, которые принадлежат друг другу.
Что касается структур, не имеющих методов: я уже не раз видел, что у структуры есть методы, и я не чувствую, что это было бы неестественно.
1) Это единственное отличие в С++.
2) POD: простые старые данные Другие классы → не POD