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

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

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

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

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

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

Зачем пишется имя класса перед шаблоном? - C++
#include <iostream> template <typename T> class Grid { public: Grid(int mWidth = kDefaultWidth, int mHeight =...

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

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

Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать? - C++
Объясните пожалуйста про Void для оооочень далекого человека. Читаю книгу Шилдта, в принципе всё ясно, всё понимаю и пробую, но вот Void -...

Как узнать тип производного класса в функции базового - C++
Всем привет! Есть иерархия классов: class1 -> class2->class3 class2->class4 class2->class5 Где...

Способы возврата данных из функции - C++
какими способами можно возвратить данные из функции(передать копию, адрес или ссылку)?????

6
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
30.11.2013, 19:35 #2
Цитата Сообщение от Sabnik Посмотреть сообщение
Читаю учебник и вижу там такое: Car *Function(....);
Что это значит?
это значит что функция возвращает указатель на Car

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

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

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

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

Или когда объявляется функция. И как можно понять такую запись?
Cat *Function();
Все никак не доходит.
0
alsav22
5425 / 4820 / 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;
}
0
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
02.12.2013, 19:54 #6
Изучай сначала просто функции без классов. А перед тем, как изучить классы, изучи структуры!
0
Onito
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 20
02.12.2013, 19:59 #7
представь себе что у тебя есть массив на 2 гига памяти, передавать его в функции по значению это значит скопировать 2 гига инфы что ппц как долго, проще передать адрес на этот массив чтобы избежать лишнего копирования и тд, это на пальцах. А отличие ссылки от указателя в том что указатель это переменная содержащая адрес и следовательно с ней можно работать как с переменной а дальше все преимущества указателей в различных ситуациях проявляются, а про такие вещи как виртуальный функции говорить вам пока смысла нет. удачи
0
02.12.2013, 19:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 19:59
Привет! Вот еще темы с ответами:

При перегрузке оператора для класса не получается использовать имя переменной такое же, как в описании класса - C++
Описал первый класс,затем - описал второй класс, используя первый,и когда начал перезагружать оператор для второго класса, вылезла...

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

Зачем нужно явно указывать тип переменной? - C++
Всем привет! Объясните зачем нужно явно указывать тип переменной? Например в С++ это обязательно, а php нет. Просто говорят что не...

Зачем нужен тип private, если есть protected? - C++
зачем нужен тип private если есть protected??? одного не достаточно? ведь свойства те же. и даже лучше...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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