Другие классы -> не POD

жные дубликаты:
C / C ++ Struct против класса
Что такое типы POD в C ++?

Здравствуй,

вC ++ в двух словах, вглава 6: классыподСпецификаторы доступа, упомянул следующее:

В определении класса доступ по умолчанию для членов и базовых классов является закрытым. В определении структуры значением по умолчанию является public.Это единственная разница между классом и структуройхотя по соглашению некоторые программисты используют struct только дляPOD классы и использовать класс длявсе остальные классы.

Мои вопросы здесь:

Разве нет другого различия между классами и структурами в том, что структуры не содержат функции и просто содержат данные?Что такое классы POD? И что подразумевается под всеми другими классами здесь? Есть ли тогда специальные занятия?

Благодарю.

 Paul R25 янв. 2011 г., 11:18
@aali == дубликат @SWEngineer?
 Brandon26 нояб. 2016 г., 05:45
 Charles Salvia25 янв. 2011 г., 10:45

Ответы на вопрос(5)

которые имеют только элементы данных и ничего больше. Есть несколько вопросов на стеке потока о том же. Найти одинВот.

Кроме того, вы можете иметь функции в качестве членов структур в C ++, но не в C. Вы должны иметь указатели на функции в качестве членов в структурах в C.

2) ПОД:простые старые данные Другие классы -> не POD

простые старые данные, Это обычно относится кstructs без любые методы, потому что эти типы затем используются для структурирования нескольких данных, которые принадлежат друг другу.

Что касается структур, не имеющих методов: я не раз видел, что у структуры есть методы, и я не чувствую, что это было бы неестественно.

что нет другого различия, если попытаетесь определить функцию в структуре. Я помню, даже мой профессор колледжа, который преподавал структуры и классы в C ++, с удивлением узнал об этом (после того, как ученик исправил его). Хотя я верю в это. Это было довольно забавно. Профессор продолжал говорить, в чем были различия, и студент продолжал говорить: «На самом деле вы можете сделать это и в структуре». Наконец проф. спросил «ОК, в чем разница», и студент сообщил ему, что единственная разница заключалась в доступности членов по умолчанию.

Быстрый поиск в Google показывает, что POD означает «Обычные старые данные».

 Asif Mushtaq16 янв. 2016 г., 16:05
Этот учитель пытался изучить / узнать разницу между struct и class в C, а не в C ++, потому что в C мы не можем добавлять функции в struct.
 Chris Rollins19 июн. 2017 г., 04:31
У C даже нет классов: люди P просто думают, что структуры в C ++ не могут иметь методы, потому что они думают о C ++ как о надмножестве C, что приводит к неверному предположению, что структуры C ++ такие же, как структуры C.
 Alex22 июл. 2014 г., 16:52
Плохое время для этого учителя, и, без сомнения, :)

Другое отличие состоит в том, что

template<class T> ...

разрешено, но

template<struct T> ...

не является.

 Grozz25 янв. 2011 г., 12:04
+1 за уникальный подход
 Peter Lee18 сент. 2013 г., 18:08
Официальный способ использования шаблонаtemplate<typename T>, template<class T> вводит в заблуждение, это из-за наследства.
 Asif Mushtaq16 янв. 2016 г., 16:03
затем добавьте еще одно различие между int и class тоже .. !!template<class T> ... works ноtemplate<int T> ... not
 Simon Richter16 янв. 2016 г., 21:19
@ Не знаю, конечно, это работает, мы просто называем целые числаI, J, K, L по историческим причинам.

Ваш ответ на вопрос