2012-03-21 1 views
0

У меня возникла проблема с написанием функции toString на QT C++.Функция QT C++ с необязательным параметром для строк

Например, у меня это в моем файле заголовка QString toString (QString delimiter = ":"); и я получаю следующую ошибку

ошибки: по умолчанию аргумента для параметра типа «QString» имеет типа 'константный символ [3]

В otpional параметров прекрасно работали для других типов, но, кажется, что компилятор интерпретирует ":" как тип char и, как таковой, дает мне следующую ошибку (я думал, что символы используют '', оказывается, я ошибался).

Я искал этот материал, но не мог найти ничего бесполезного, я довольно там должен быть легко исправить, но я новичок в этом языке.

Спасибо

ответ

1

Ошибка компилятора говорит о том, что имеет В параметре типа QString, но значение по умолчанию, вы дали это типа const char[3] (константный массив символов), потому что это строковый литерал. QString имеет конструктор, который принимает const char* (и запоминает разложение массивов на указатели), поэтому обычно он может выполнять неявное преобразование с const char* до QString, однако, кажется, что конструктор был объявлен explicit, и поэтому его нужно вызывать явно.

Edit: Это не явно, заголовок просто должен быть включен :)

+0

да, я попробовал литье это так, но это не сработало, это была ошибка: неправильное использование неполного типа " struct QString ' – user1039063

+2

aaah, моя глупая голова, чего не хватает, #include , теперь он работает, спасибо большое :) – user1039063

+0

Ну да, действие происходит в файле заголовка на данный момент :) – user1039063