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

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

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

C++ при перезагрузке оператора для класса не получается использовать имя переменной такое же,как в описании класса
C++ В чем разница между exit(код возврата) и ExitProcess (код возврата)?
C++ Как правильно передать метод в качестве функции возврата?
C++ тип функции класса - тип класса?
C++ Статическое поле класса, имеющее тип того же класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 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
5282 / 4801 / 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
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.12.2013, 19:54     Зачем функции дают тип возврата - имя класса? #6
Изучай сначала просто функции без классов. А перед тем, как изучить классы, изучи структуры!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 19:59     Зачем функции дают тип возврата - имя класса?
Еще ссылки по теме:

Зачем нужно явно указывать тип переменной? 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     Зачем функции дают тип возврата - имя класса?
Ответ Создать тему
Опции темы

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