2014-09-28 2 views
-3

Я новичок в Qt и не понимаю, как получить справочный документ, пожелайте, чтобы кто-то мог помочь, высоко оценил.Qt Creator 5.3 Нужна помощь при понимании справочной документации

Например:

void QList::append(const T & value) 

Я могу видеть тип возвращаемого значения является недействительным, и она является функцией членом QList. Но что в скобках действительно смутило меня, что это значит: const T & value? Я пробовал использовать регулярную переменную QString в качестве аргумента, и она работала нормально, тогда почему const?

Другим примером является

void QFile::setFileName(const QString & name) 

В примере кода приведены в справочном документе:

QFile file; 
file.setFileName("readme.txt"); 

Я не могу понять, что QString & name значит, у него есть что-то делать со ссылками?

+0

«const» просто означает, что сам метод не может его изменить, поэтому 'QString' будет прежним до и после вызова функции. – msrd0

+3

. Получите [хорошую книгу на C++] (http: // stackoverflow. ком/вопросы/388242/заместитель окончательного-с-книга-гид-и-лист). –

+6

Этот вопрос не соответствует теме, потому что речь идет о понимании C++ вместо конкретной проблемы с кодом. –

ответ

3

Прежде всего Qt является framework, Qt Creator является IDE. Я понимаю, что вы новичок, и эти вещи должны выглядеть запутанными, но я рекомендую не торопиться и начинать изучать их шаг за шагом.

Что вы действительно путаете, это C++ templates, а не Qt.

T является общим типом и может быть указан оператором алмаза (<>) следующим образом: QList<int> integerList;. Теперь, если вы выполните integerList.append(42), T будет интерпретирован как int. Если тип переменной, переданный функции append, отличается от типа, указанного в QList<int> integerList;, вы получите сообщение об ошибке.

Вторая проблема у вас есть, вы не понимаете references.

Рекомендую прочитать a good C++ book, а затем продолжить. Или, по крайней мере, a decent language tutorial ...

Наконец, это форум, на котором люди публикуют проблемы в коде, над которым они работают, или о проблемах с кодом, который они уже написали. Вы не найдете никого, кто научит вас языку программирования, поэтому у вас так много минусов. Здесь я рекомендую stackoverflow help page.

+0

* Если тип переменной передан в [...], вы получите сообщение об ошибке. * Только если преобразование невозможно. Вы можете, например, передать 'char' в' QList :: append (int) 'так же, как вы можете делать с регулярными функциями с' int'. – leemes

+1

Да, но это частный случай, называемый неявным преобразованием. Если вы начнете рассказывать ему обо всех исключениях из правила, вы еще больше смутите его. Он не знает основ, поэтому я указал на проблемы настолько простыми, насколько мог, и рекомендовал книги/учебники для чтения. –

+0

Хороший вопрос об простоте. – leemes

Смежные вопросы