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

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

Войти
Регистрация
Восстановить пароль
 
Sabnik
2 / 2 / 0
Регистрация: 09.03.2013
Сообщений: 40
#1

Зачем функции дают тип возврата - имя класса? - C++

30.11.2013, 19:29. Просмотров 315. Ответов 6
Метки нет (Все метки)

Думаю вы по названию не поняли, так вот.
Допустим я объявил класс Car.
Читаю учебник и вижу там такое: Car *Function(....);
Что это значит? То есть область видимости функции в пределах класса?
И вот такой еще вопрос. Зачем делать так Car *const Function(....)? Не пойму, зачем делать функцию константной и как функция может быть указателем?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 19:29     Зачем функции дают тип возврата - имя класса?
Посмотрите здесь:

C++ При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса
C++ Зачем нужны конструктор и деструктор класса?
C++ Как описывать функции, заданные в шаблоне класса, тип возвращаемого значения которых совпадает с именем класса
C++ В чем разница между exit(код возврата) и ExitProcess (код возврата)?
C++ Как правильно передать метод в качестве функции возврата?
C++ Какими способами можно использовать функции класса B, как параметры функции Sub класса А?
Зачем нужно опережающее объявление класса в заголовке? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6548 / 3968 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 19:35     Зачем функции дают тип возврата - имя класса? #2
Цитата Сообщение от Sabnik Посмотреть сообщение
Читаю учебник и вижу там такое: Car *Function(....);
Что это значит?
это значит что функция возвращает указатель на Car

Добавлено через 36 секунд
Цитата Сообщение от Sabnik Посмотреть сообщение
Зачем делать так Car *const Function(....)?
функция возвращает константный указатель на Car
Sabnik
2 / 2 / 0
Регистрация: 09.03.2013
Сообщений: 40
01.12.2013, 08:51  [ТС]     Зачем функции дают тип возврата - имя класса? #3
Цитата Сообщение от Jupiter Посмотреть сообщение
это значит что функция возвращает указатель на Car

Добавлено через 36 секунд

функция возвращает константный указатель на Car
И что это нам дает? Не совсем понял "функция возвращает указатель на Car". То есть как я указал, область видимости в пределах класса? То есть использует оттуда переменные-члены?
Sabnik
2 / 2 / 0
Регистрация: 09.03.2013
Сообщений: 40
02.12.2013, 19:39  [ТС]     Зачем функции дают тип возврата - имя класса? #4
Помогите, пожалуйста.

Не могу понять зачем ссылаться на объект или быть указателем, например есть класс Cat.
Cat & Vasya;
Cat * Vasya;

Или когда объявляется функция. И как можно понять такую запись?
Cat *Function();
Все никак не доходит.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.12.2013, 19:49     Зачем функции дают тип возврата - имя класса? #5
Цитата Сообщение от Sabnik Посмотреть сообщение
Все никак не доходит.
Если так?
C++
1
2
3
4
5
Cat* Function()
{
    Cat* p_Cat = new Cat;
    return p_Cat;
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
02.12.2013, 19:54     Зачем функции дают тип возврата - имя класса? #6
Изучай сначала просто функции без классов. А перед тем, как изучить классы, изучи структуры!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 19:59     Зачем функции дают тип возврата - имя класса?
Еще ссылки по теме:

C++ Статическое поле класса, имеющее тип того же класса
Зачем нужно явно указывать тип переменной? C++
Как узнать тип производного класса в функции базового C++
Способы возврата данных из функции C++
C++ Зачем пишется имя класса перед шаблоном?

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

Или воспользуйтесь поиском по форуму:
Onito
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 20
02.12.2013, 19:59     Зачем функции дают тип возврата - имя класса? #7
представь себе что у тебя есть массив на 2 гига памяти, передавать его в функции по значению это значит скопировать 2 гига инфы что ппц как долго, проще передать адрес на этот массив чтобы избежать лишнего копирования и тд, это на пальцах. А отличие ссылки от указателя в том что указатель это переменная содержащая адрес и следовательно с ней можно работать как с переменной а дальше все преимущества указателей в различных ситуациях проявляются, а про такие вещи как виртуальный функции говорить вам пока смысла нет. удачи
Yandex
Объявления
02.12.2013, 19:59     Зачем функции дают тип возврата - имя класса?
Ответ Создать тему
Опции темы

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