Насколько я могу судить, вы действительно просто спрашиваете здесь о терминологии. Единственное реальное различие, сделанное стандартом C ++, - это типы POD и не POD-типы, где не-POD-типы имеют такие функции, как определяемые пользователем конструкторы, функции-члены, частные переменные и т. Д., А типы POD - нет. Основные типы, такие как int
и float
, являются, конечно, POD, как и массивы POD и C-структуры POD.
Помимо (и перекрытия) C ++, концепция «экземпляра» в объектно-ориентированном программировании обычно относится к выделению пространства для объекта в памяти, а затем к его инициализации с помощью конструктора. Делается ли это в стеке, в куче или в каком-либо другом месте памяти в этом отношении, в значительной степени не имеет значения.
Однако стандарт C ++, похоже, рассматривает все типы данных как «объекты». Например, в 3.9 написано:
"Объект представления типа T
последовательность N беззнаковых символов
объекты, захваченные объектом типа
T, где N равно sizeof (T) ... "
Таким образом, по сути, единственное различие, сделанное самим стандартом C ++, это POD и не POD.