crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Гость_Blobru_*
сообщение 1.6.2015, 15:13
Сообщение #1





Гости








    


Всем привет!

Подскажите пожалуйста, для чего передавать просто тип данных в функцию, без переменной, например:

void MyClass::paintEvent(QPaintEvent*)


Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 7)
Iron Bug
  опции профиля:
сообщение 2.6.2015, 8:59
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


это декларация.
читать Страуструпа до полного просветления и усвоения основ С++.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 2.6.2015, 9:04
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Кроме того, если имя параметра опущено в описании тела функции (definition), обычно это означает что параметр не используется в функции.

Сообщение отредактировал lanz - 2.6.2015, 9:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Blobru_*
сообщение 2.6.2015, 20:17
Сообщение #4





Гости








    


Я понимаю, что когда мы объявляем аргументы функции, и не указываем там у типа переменной имя, то мы не используем его в функции, но зачем тогда вообще писать тип данных
"QPaintEvent* " если мы в функции не используем его??
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 2.6.2015, 21:44
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Потому что нельзя просто ничего не написать
http://open-std.org/JTC1/SC22/WG21/docs/pa.../2015/n4431.pdf

8.3.5, потом 8.3 (можно и наоборот)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Blobru_*
сообщение 2.6.2015, 23:16
Сообщение #6





Гости








    


lanz, Спасибо Вам большое за информацию.

Только всеравно не понятно немного, ведь есть же такие функции:

void Print()
{
std::cout<<"Hello";
}

или
double Sum()
{
return 2.5+2.5;
}


и они работают без всяких аргументов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 2.6.2015, 23:31
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Эти функции не принимают ни одного аргумента.
Метод paintEvent описан в родительском классе QWidget как принимающий один аргумент.
Если вы определите(и реализуете) метод paintEvent() (без аргументов), то это будет уже совершенно другой метод.

Почитайте про перегрузку функций:
http://programmersclub.ru/13/
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Blobru_*
сообщение 2.6.2015, 23:38
Сообщение #8





Гости








    


lanz Все, понял! Спасибо Вам огромное!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 22.7.2025, 20:31