Форум программистов, компьютерный форум CyberForum.ru

Разница между объектом и экземпляром класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввести с клавиатуры n произвольных целых чисел и вычислить сумму положительных четных из них http://www.cyberforum.ru/cpp-beginners/thread798894.html
задача не проблема, но, как это реализовать без массива?
C++ Как генерировать случайные числа? Как в с++ с генерировать, например положительные числа от 0 до 10? знаю, что есть генератор rand в библиотеке stdlib.h, но не знаю, как он работает и как вообще им пользоваться. http://www.cyberforum.ru/cpp-beginners/thread798889.html
C++ Не получается определить friend за приделами шаблона
Есть шаблон класса: template <typename V> class Vector; и есть "друг": friend std::ostream& operator<<(std::ostream& lhs, const Vector& rhs); Если объявить и определить в самом теле шаблона, то всё ОК, а вот за пределами компилятор выдаёт ошибки. Подскажите как правильно нужно определять "друзей" за пределами шаблона. Спасибо. Сори за безграмотность :)
BigInt to int C++
как перевести BigInt в int ? например int e=0; BigInteger bigE = new BigInteger(String.valueOf(e)); int res; и теперь нужно bigE записать в res
C++ Как составить программу к следующей задаче http://www.cyberforum.ru/cpp-beginners/thread798853.html
Надо написать прогр. к задаче про паркетчик. Паркетчик должен класть паркет на пуст. место в помещении, по опред. алгоритму, и при этом обходя припятствия(т.е. не врезаясь в стену) Помещение и припятствия(стены) задается массивом, из 0 и 1 соотв.. Место нахождения паркетчика зададим, например, цифрой 5. а место уклад. паркета будем обозн. буквой-п. Например, входной массив таков: 1 1 1 1 1 1 1...
C++ код Тритемиуса помогите написать код Тритемиуса //Программа шифрования/дешифрования символов латиницы #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <fstream> подробнее

Показать сообщение отдельно
hoggy
5228 / 2119 / 403
Регистрация: 15.11.2014
Сообщений: 4,806
Завершенные тесты: 1
03.09.2015, 18:37     Разница между объектом и экземпляром класса
Цитата Сообщение от Cdelphi78 Посмотреть сообщение
ввОТ.
картинка не имеет ни малейшего отношения к с++
и вообще, не понятно к чему она может относиться.

на плюсах все просто:
класс описывает свойства и умения своих объектов.

например, класс машинок описывает:

свойства (они же - атрибуты, они же - данные-члены):
размер бензобака, цвет, пробег.

умения (они же методы, они же функции-члены):
ездить, тормозить, мигать фарами и бибигать.

ну так вот, атрибуты объекта являются его собственностью.
можно сделать несколько объектов-машинок.
одна будет красной, другая черной, и тд.

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


а вот умения, они же функции-члены для всех объектов абсолютно идентичны.
они являются собственностью класса, а не отдельного объекта.

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

и существуют функции-члены в единственном экземпляре.


отсюда вытекает природа концепции класса на языке с++:

C++
1
2
obj.method(param); //<--- якобы объект изменяет собственное состояние
// создается иллюзия, как будто бы это объект сам что-то делает.
на самом деле ни что иное,
как синтаксический сахар над самой обычной "свободной функцией".

C++
1
2
method(obj); //<--- обычная функция воздействует на обычную структуру
// изменяя её состояние
конечно, реальная картинка мира несколько чуть более сложна.
полиморфизм и все такое.

но реальное положение вещей именно такое:
классы - описания некой абстракции,
по которой компилятор зафигачит нам сахарку,
что бы мы могли смотреть на экземпляры классов,
не как на обычные "сишные куски памяти",
а как на реальные "сущности, наделенные свойствами и умениями".
 
Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru