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

Объекты - одна функция на всех? - C++

Восстановить пароль Регистрация
 
Hagrael
БТР - мой друг
 Аватар для Hagrael
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.06.2012, 10:41     Объекты - одна функция на всех? #1
Здравствуйте! У меня такой вопрос: Если мы создали класс theClass с функцией theFunction, то функция theFunction будет в памяти одна на все объекты или у каждого она своя? По-моему, было бы логичнее сделать одну функцию на всех. И почему из функций одного объекта можно получить доступ к приватным членам другого объекта такого же типа? Это сделано из каких-то логичных соображений или просто так, чтобы та единственная функция не заморачивалась?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 10:41     Объекты - одна функция на всех?
Посмотрите здесь:

читаю главу 10 книги стивена праты - "объекты и классы". автор во всех примерах поступает следуйщим образм: объявляет класс в одном фаиле... C++
C++ Функция подсчёта всех цифр в строке
C++ функция y=1/2*ln*x (одна вторая умноженная на ln и умноженная на x)
C++ Функция, которая возвращает слово в строке, которое короче всех.
C++ В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.06.2012, 10:44     Объекты - одна функция на всех? #2
Цитата Сообщение от Hagrael Посмотреть сообщение
Если мы создали класс theClass с функцией theFunction, то функция theFunction будет в памяти одна на все объекты или у каждого она своя?
одна на всех
Hagrael
БТР - мой друг
 Аватар для Hagrael
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.06.2012, 11:12  [ТС]     Объекты - одна функция на всех? #3
И еще один вопрос: Почему нельзя сделать так:
C++
1
int& theFunction () {return 5;}
Ведь, насколько я знаю, выделяется место под переменную типа int, равную 5. Так почему бы не передать адрес этой переменной из функции назад?
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.06.2012, 11:20     Объекты - одна функция на всех? #4
Цитата Сообщение от Hagrael Посмотреть сообщение
Так почему бы не передать адрес этой переменной из функции назад?
Ваша функция возвразает не адрес, а ссылку. А ссылка всегда должна ссылатся на какую-то область памяти (читай переменную). 5 - это константа, но никак не переменная
Hagrael
БТР - мой друг
 Аватар для Hagrael
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.06.2012, 15:10  [ТС]     Объекты - одна функция на всех? #5
Я понимаю это так. 5 - это значение, которое может принимать переменная, а a - это сама переменная. Когда мы возвращаем a, мы на самом деле возвращаем именно значение переменной a, если у нас функция возвращает не ссылочную переменную. Если же функция возвращает ссылочную переменную, то переменная в которую записывается то, что вернулось, начинает занимать то же место, что и переменная, которую возвращают.
Yandex
Объявления
07.06.2012, 15:10     Объекты - одна функция на всех?
Ответ Создать тему
Опции темы

Текущее время: 05:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru