быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|||||||||||
1 | |||||||||||
Что за перегруженный оператор char* ()?19.10.2010, 21:04. Показов 12775. Ответов 79
Метки нет (Все метки)
Вот синтаксис:
Я порылся в инете, но везде ведётся речь про перегружаемые оператооры, т есть примерно такого вида:
"...Класс такой-то объявляет функцию преобразования char *() (а где её имя? где аргументы? Где возвращаемое значение?) Если эта функция объявлена, вы можете использовать объект класса такого-то везде, где ожидаются данные типа char*. Функция преобразования возвращает адрес строковых данных, которые содержатся в объекте данных ptr" Просто помогите сие изложение осилить, спасибо.
1
|
19.10.2010, 21:04 | |
Ответы с готовыми решениями:
79
Класс для работы с матрицами - Что дает перегруженный оператор индексирования? Как указать, что я могу искать в любом контейнере, который имеет перегруженный оператор []? Перегруженный оператор Перегруженный оператор + |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 22:59 | 21 |
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
19.10.2010, 23:07 [ТС] | 22 |
Вот посмотрите полностью код, мы с автором сей темы по одной книге, что ли занимаемся
Функции преобразования Стока номер 21
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
19.10.2010, 23:11 | 24 | |||||
kravam,
Оператор приведения типа класса к типу char* Добавлено через 1 минуту Andrew_Lvov, reinterpret вообще не стоит использовать без веских причин. я могу ошибаться, но вроде как исключения выкинуто при ошибки не будет. Пойдет просто terminate()... Но я могу и ошибаться. И скорее всего я действительно в корне не прав.
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
19.10.2010, 23:14 [ТС] | 26 | |||||
Ну так я и прошу всё это время объяснить почему я всегда приводил все и всё к типу char*вот так:
int* i; char* i Я приводил когда, я в скобки ставил, понимаете? char* ставил в скобки. А тут я вижу, что в скобки ставить не надо. Чё такое?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
19.10.2010, 23:18 | 27 | |||||
kravam, Как это не надо?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
19.10.2010, 23:23 [ТС] | 28 | |||||
Давайте сосредоточимся на простом. Я ещё не дошёл до такого синтаксиса
Добавлено через 52 секунды Просто я так никогда не пойму, если щас полезу смотреть что значит <double> и так далее. НАдо с одним уж разобраться.
0
|
19.10.2010, 23:23 | 29 | |||||
kravam, в чём собственно вопрос, сформулируйте внятно.
operator char*() Скобки указывают, что речь идёт о методе класса, который не принимает аргументов. operator T - означает, что речь идёт о специальном методе, к-рый позволяет делать преобразование объёкта в тип T, в данном случае T = char* Такой оператор позволяет писать такие инструкции, как:
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
19.10.2010, 23:24 | 30 | |||||
kravam, То есть. Вы спрашиваете не должно ли быть вот так?
1
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
19.10.2010, 23:24 | 31 | |||||
Кто-нибудь может объяснить,почему на данный код выдаются такие ошибки при компиляции?
Код
/main.cpp||In function ‘int main()’:| /main.cpp|20|error: ‘void*’ is not a pointer-to-object type| /main.cpp|20|error: label ‘z’ used but not defined| ||=== Build finished: 2 errors, 0 warnings ===|
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
19.10.2010, 23:26 | 32 | |||||
#pragma, Что за издевательство над компилятором? оО
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
19.10.2010, 23:29 [ТС] | 34 | |||||
ВЫше моего понимания
А вот тут семантика другая и в скобки заключать не бессмысленно
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 23:31 | 35 |
Andrew_Lvov, Кстати. А если на 2010 допустим компилить или gcc 4.5.0 как двойную ссылку не воспримет?
Добавлено через 38 секунд kravam, эээ... Это просто семантика. Само приведение идет в этой функции...
0
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
|
19.10.2010, 23:33 | 36 |
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 23:34 | 37 |
#pragma, А что ты пытался сделать, можно поконкретнее? Меня просто такое вообще убило
0
|
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
|
||||||
19.10.2010, 23:38 | 39 | |||||
Добавлено через 2 минуты Просто ковырял Ты поковыряй,поубирай-поприбавляй значки,это прикольно)
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
19.10.2010, 23:41 | 40 |
Andrew_Lvov, rvalue_references я имею ввиду.
0
|
19.10.2010, 23:41 | |
19.10.2010, 23:41 | |
Помогаю со студенческими работами здесь
40
Перегруженный оператор + перегруженный оператор << Перегруженный оператор ввода Функции и перегруженный оператор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |