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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
#1

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

07.06.2012, 10:41. Просмотров 294. Ответов 4
Метки нет (Все метки)

Здравствуйте! У меня такой вопрос: Если мы создали класс theClass с функцией theFunction, то функция theFunction будет в памяти одна на все объекты или у каждого она своя? По-моему, было бы логичнее сделать одну функцию на всех. И почему из функций одного объекта можно получить доступ к приватным членам другого объекта такого же типа? Это сделано из каких-то логичных соображений или просто так, чтобы та единственная функция не заморачивалась?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 10:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объекты - одна функция на всех? (C++):

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты? - C++
Вопрос прост: как при выходе из функции сохранить объекты, которые были созданы в данной функции (указатели объектов положены в массив)?

Виртуальная функция, принимающая объекты поочередно - C++
есть класс у него 2 дочерних, есть статическая функция вызывающая ф-ю вывода на экран все объетты класса+дочерние, нужно написать такую же...

Функция создающая объекты производных классов - C++
Функция получает входной параметр - целое число. Если оно равно 0, создается новый объект - окружность, если равно 3 - создается...

Одна функция для двух классов-наследников - C++
Допустим, есть класс Transport, у которого есть классы-наследники Auto и Velosiped. Надо написать функции, делающие примерно одно и то же...

String одна функция вместо erase+append - C++
Всем привет. Поискал, вроде нет такой функции, но вдруг есть. const string::size_type position = wbuffer.find_last_of(L'\\'); ...

В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты начинают двигаться - C++
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.06.2012, 10:44 #2
Цитата Сообщение от Hagrael Посмотреть сообщение
Если мы создали класс theClass с функцией theFunction, то функция theFunction будет в памяти одна на все объекты или у каждого она своя?
одна на всех
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.06.2012, 11:12  [ТС] #3
И еще один вопрос: Почему нельзя сделать так:
C++
1
int& theFunction () {return 5;}
Ведь, насколько я знаю, выделяется место под переменную типа int, равную 5. Так почему бы не передать адрес этой переменной из функции назад?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.06.2012, 11:20 #4
Цитата Сообщение от Hagrael Посмотреть сообщение
Так почему бы не передать адрес этой переменной из функции назад?
Ваша функция возвразает не адрес, а ссылку. А ссылка всегда должна ссылатся на какую-то область памяти (читай переменную). 5 - это константа, но никак не переменная
Hagrael
БТР - мой друг
331 / 273 / 2
Регистрация: 07.01.2010
Сообщений: 1,932
07.06.2012, 15:10  [ТС] #5
Я понимаю это так. 5 - это значение, которое может принимать переменная, а a - это сама переменная. Когда мы возвращаем a, мы на самом деле возвращаем именно значение переменной a, если у нас функция возвращает не ссылочную переменную. Если же функция возвращает ссылочную переменную, то переменная в которую записывается то, что вернулось, начинает занимать то же место, что и переменная, которую возвращают.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2012, 15:10
Привет! Вот еще темы с ответами:

функция y=1/2*ln*x (одна вторая умноженная на ln и умноженная на x) - C++
Помогите решить программку пожалуйста вот я накидала код .. подскажите или исправьте мои ошибки (она не работает к сожалению ) работа...

читаю главу 10 книги стивена праты - "объекты и классы". автор во всех примерах поступает следуйщим образм: объявляет класс в одном фаиле... - C++
...а реализует функции в другом - в том котором создаёт и ползуется объектом. у меня вопросс: а не лучше ли (практичнее, или возможно ли...

Функция удаления из строки всех точек - C++
Нужно разработать рекурсивную функцию для удаления всех точек из строки. Вот, что у меня получилось. Выбивает ошибку String subscript out...

Функция подсчёта всех цифр в строке - C++
Как написать функцию которая считает сумму всех цифр в строке?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.06.2012, 15:10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru