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

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

Войти
Регистрация
Восстановить пароль
 
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
#1

Непонятное определение функции. - C++

04.01.2012, 22:38. Просмотров 596. Ответов 3
Метки нет (Все метки)

Объясните смысл следующих определений, плз.
C++
1
2
3
4
 QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
                           const QModelIndex &index) const;
 
     void setEditorData(QWidget *editor, const QModelIndex &index) const;
Конкретно не понятно что за const в конце. И первое - это определение указателя на функцию ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2012, 22:38     Непонятное определение функции.
Посмотрите здесь:

Непонятное поведение простой функции - C++
Решал одну задачу на рекурсию, долго не мог добится результата пока не понял что проблема не в рекурсии а в аргументах функции, сделал...

Непонятное мне поведение функции - C++
Эта функция себя странно ведёт. Она работает и если с первого раза ввести цифры с клавиатуры, то работает корректно, но если сначала ввести...

определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер? - C++
Сабж, а подробнее если в заголовочном файле hider.h описана функция, допустим так: void f (); void f () { int per= 10; } ...

Непонятное поведение потока ввода: в одной функции букву ввёл = во всех функциях наперёд ввёл. Распродажа! - C++
Парни, у меня возникла щекотливая ситуация. Делаю маленькую программу работающую с двоичным деревом поиска. Для удобства сделал что-то...

Определение функции - C++
Здравствуйте. Подскажите пожалуйста есть ли разница между этими двумя програмками: #include "stdafx.h" #include <iostream> ...

Многократное определение функции - C++
Подскажите, компилятор ругается на пере-объявление функции. Есть файл h. В нём примерно, что то типа #ifndef STANDART_H #define...

Определение функции length3 - C++
Напишите определение функции length3, которая имеет один аргумент радиус и содержит код: double y; y=2*3.1415*r; return y; Объявите...

Определение функции не разрешено? - C++
Помогите пожалуйста: Выдает ошибку |83|error: a function-definition is not allowed here before '{' token| Не могу понять в чем дело...

Определение элементов функции. - C++
#include <iostream> #include <conio.h> #include <vector> using namespace std; void print(int i) { cout <<...

Очень интересное определение функции - C++
Доброго времени суток! сейчас собираю небольшую библиотечку - и наткнулся на очень интересный кусок кода: strtol (nptr, endptr, base) ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.01.2012, 22:47     Непонятное определение функции. #2
Прототипы функций это. Из Qt.
Первая возвращает указатель на QWidget. Принимает указатель на родителя, константную ссылку на QStyleOptionViewItem и константную ссылку на QModelIndex
Вторая ничего не возвращает, принимает указатель на QWidget и константную ссылку на QModelIndex.
Обе находятся в классе и не могут менять переменные в данном классе.

Книги, блин, читать надо.
KBAC
1 / 1 / 0
Регистрация: 10.05.2010
Сообщений: 72
04.01.2012, 22:55  [ТС]     Непонятное определение функции. #3
А конкретно const что значит ?
А, понял, наверно что ничего изменять не могут.
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,909
04.01.2012, 23:18     Непонятное определение функции. #4
Цитата Сообщение от KBAC Посмотреть сообщение
А конкретно const что значит ?
А, понял, наверно что ничего изменять не могут.
Грубо говоря, это значит, что такой метод(в отличии от неконстантного) можно вызвать для константного объекта.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class SomeClass
{
    public:
        void f1() {} 
        void f2() const {} 
};
 
void func_const_ref(const SomeClass& ob)
{
    // ob.f1(); // ошибка
    ob.f2(); // нормально
}
 
void func_const_ptr(const SomeClass* ob)
{
    // ob->f1(); // ошибка
    ob->f2(); // нормально
}
 
void func_ref(SomeClass& ob)
{
    ob.f1(); // нормально
    ob.f2(); // нормально
}
 
 
int main()
{
    SomeClass ob;
    func_ref(ob);
    func_const_ref(ob);
    func_const_ptr(&ob);
}
Yandex
Объявления
04.01.2012, 23:18     Непонятное определение функции.
Ответ Создать тему
Опции темы

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