|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||||||||||||
Автоматическое преобразование стандартных типов13.02.2010, 00:39. Показов 4709. Ответов 26
Метки нет (Все метки)
Если моя функция LOG принимает qString* можно ли сделать так чтобы автоматически вызывалась конструирование временного объекта и он отправлялся в фунцию? т.е. вместо
Впервые сталкиваюсь с таким
0
|
||||||||||||||||
| 13.02.2010, 00:39 | |
|
Ответы с готовыми решениями:
26
Автоматическое преобразование китайского кода в нормальный
|
|
Maniac
|
||||||||
| 13.02.2010, 01:58 | ||||||||
И Чем тебе не угодил стандартный класс std::string
0
|
||||||||
|
230 / 227 / 65
Регистрация: 18.12.2009
Сообщений: 316
|
|||||||
| 13.02.2010, 03:55 | |||||||
|
в данном случае можно было бы перегрузить данную ф-цию. зделать из нее void LOG(char * error, ....) только вопрос в том, как теперь передать в нее переменное кол-во аргументов. Можно попробовать так:
0
|
|||||||
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||
| 13.02.2010, 12:14 | ||
|
1. У qString должен быть конструктор, позволяющий создать объект этого типа из аргумента типа const char* : qString::qString(const char* _arg) { /* как-то конструируем объект...*/ } 2. Функция LOG должна принимать аргумент типа qString по ссылке на константу: LOG(const qString& _arg) { /* здесь как-то логируем этот _arg */ }; Все. После этого можешь смело писать LOG("тра-ля-ля");
1
|
||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
| 13.02.2010, 12:56 [ТС] | ||||||
для саморазвития полезно
0
|
||||||
|
1261 / 799 / 108
Регистрация: 16.09.2009
Сообщений: 2,010
|
|
| 13.02.2010, 13:08 | |
|
Совет Используй массивы.
void LOG(qString* Error, ...); Это же указатель на объект каким боком ты адрес строки char сможешь присвоить. Если бы было так: void LOG(qString Error, ...); //может бы и прокатило, если у qString есть соответствующий конструктор преобразования. Но мое предложение не выгодно так как при передаче по значению происходит копирование. Может есть другие варианты.
0
|
|
|
Maniac
|
|||||||
| 13.02.2010, 13:14 | |||||||
1
|
|||||||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|||||||
| 13.02.2010, 13:30 [ТС] | |||||||
Прошу прощения, кажется ошибка была в объявлении, как всегда забываю в одном из двух мест исправить, но как получить следующий параметр const qString в LOG? Ссылки же инициализируются только на 1 объект
0
|
|||||||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 13.02.2010, 13:51 [ТС] | |
|
LOG принимает сколько угодно параметров чтобы все их записать в файл, иногда надо передавать цифры (qString(int newData);) иногда строки (qString(const char* newData);)
0
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
| 13.02.2010, 14:04 | |
|
insideone, boost format
?
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 13.02.2010, 15:04 [ТС] | |
|
2 zim22 уж лучше будут принимать в LOG const char*, ...
0
|
|
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
| 13.02.2010, 15:10 | |
|
insideone, почитай
http://jia3ep.blogspot.com/200... ormat.html
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||||||||||||
| 13.02.2010, 15:14 [ТС] | ||||||||||||||||
|
Хм? Мне не нужно форматировать вывод. У меня есть функция лога
0
|
||||||||||||||||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
| 13.02.2010, 15:18 | |
|
0
|
|
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
||||||
| 13.02.2010, 15:23 [ТС] | ||||||
|
Э... я имею ввиду что получать то она должа только строки, но писать я могу так:
0
|
||||||
|
depict1
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
|
|
| 13.02.2010, 15:25 | |
|
1
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||||||
| 13.02.2010, 16:46 | ||||||
|
Нет, boost format - это, пожалуй, из пушки по воробьям....
Если у insideone такая возможность имеется, я бы предложил изменить интерфейс LOG таким образом, чтобы (этот объект) принимал "оператором сдвига" в стиле C++ :
1
|
||||||
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 13.02.2010, 17:31 [ТС] | |
|
У меня была такая мысль, однако придется делать его глобальным? Он используется повсеметсно а делать член-указатель во всех объектах чокнешься... или в данном случае глобал - нормальное решение?
0
|
|
|
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
|
||||||
| 13.02.2010, 17:57 | ||||||
|
Читай про паттерн "синглтон" (Singleton) - это то, что тебе нужно. Будет примерно так:
0
|
||||||
| 13.02.2010, 17:57 | |
|
Помогаю со студенческими работами здесь
20
Преобразование типов переменных Преобразование типов в XE2
Преобразование типов из Object. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|