Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/23: Рейтинг темы: голосов - 23, средняя оценка - 4.65
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550

Автоматическое преобразование стандартных типов

13.02.2010, 00:39. Показов 4979. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если моя функция LOG принимает qString* можно ли сделать так чтобы автоматически вызывалась конструирование временного объекта и он отправлялся в фунцию? т.е. вместо
C++
1
LOG(&qString("Привет мир"));
просто
C++
1
LOG("Привет мир");
Объявление LOG такое:
C++
1
void LOG(qString* Error, ...);
Мне нужно заявить как то компилятору что бы он мог преобразовывать из const char* в qString ? Что должна делать эта функция? Как быть? Впервые сталкиваюсь с таким
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.02.2010, 00:39
Ответы с готовыми решениями:

Запретить классу автоматическое преобразование
Здраствуйте, появились некоторые вопросы. Вообщем надо было создать класс myTime, который будет содержать информацию о времени (часы,...

Автоматическое преобразование китайского кода в нормальный
У меня есть огромный шмат кода примерно такого вида: if (x < 10 && y > 0 && z != 0) return 1; if (x < 10 && (y > 0 ||...

Не происходит неявное преобразование типов ( дочернего класса к базовому)
Если класс Base, от которого наследуются классы Vector и Matrix. у класса Matrix перегружен конструктор копирования, получающий...

26
depict1
 Аватар для zim22
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
13.02.2010, 18:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от insideone Посмотреть сообщение
У меня была такая мысль, однако придется делать его глобальным?
сделай. объекты cin/cout - тоже глобальны и ничего. пользуемся.
используй паттерн Одиночка
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
34
35
36
37
// 238.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <sstream>
#include <iostream>
 
class Log {
public:
  friend std::ostream &operator<<(std::ostream &out, const Log &rhs);
 
  static Log &Instance() {
    static Log instance_;
    return instance_;
  }
  template <typename T>
  Log &operator<<(T t) {
    data_ << t;
    return *this;
  }  
private:  
  Log() { }
  std::ostringstream data_;
};
 
std::ostream &operator<<(std::ostream &out, const Log &rhs) {
  out << rhs.data_.str();
  return out;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
  Log::Instance() << 12 << "hello" << 22.33 << "\n";
  std::cout << Log::Instance();
 
  return 0;
}
1
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
13.02.2010, 18:39  [ТС]
Цитата Сообщение от CheshireCat Посмотреть сообщение
Читай про паттерн "синглтон" (Singleton) - это то, что тебе нужно. Будет примерно так:
Я так понял нужно завести функцию которая возвращает определенный в ней статически объект класса Log? Думаю тогда myLog излищне и будет что то вроде
C++
1
LOG() << "сообщение";
Цитата Сообщение от zim22
используй паттерн Одиночка
Т.е. класс выходит как бы не для создания объекта а для использования статически? Интересное решение. спасибо
0
depict1
 Аватар для zim22
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
13.02.2010, 18:47
Цитата Сообщение от insideone Посмотреть сообщение
Т.е. класс выходит как бы не для создания объекта а для использования статически?
ну почему же? класс создаёт объект. только один
0
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
13.02.2010, 19:58  [ТС]
оффтоп про std::string и qString
Цитата Сообщение от ISergey Посмотреть сообщение
И Чем тебе не угодил стандартный класс std::string
Он не умеет делать такое
C++
1
2
3
4
5
6
7
8
9
10
11
12
qString Temp = CURLINE.c_str(); // Temp == "10%, 30 - 40"
 
qString GraphTime, GraphData, GraphInterval;
size_t CutTo = Temp.Find(",")-1;
Temp
    .Cut(GraphTime, 0, CutTo) // GraphTime == "10%"
    .Trim("%, \t", LTRIM)
    .Find(CutTo, " \n\t")
    .Cut(GraphData, 0, CutTo+1) // GraphData == "30"
    .Trim(" -\t", LTRIM)
    .Find(CutTo, "\0")
    .Cut(GraphInterval, 0, CutTo-1); // GraphInterval == "40"

Добавлено через 3 минуты
Цитата Сообщение от zim22 Посмотреть сообщение
ну почему же? класс создаёт объект. только один
Да) Объект создается, но впринципе класс Log изначально проектируется под 1 экземпляр который создаться статически, а Log MyLog; и другие экземпляры создавать нет надобности) Интересное решение. Да я тут с вами настоящим программистом стану, спасибо всем
0
depict1
 Аватар для zim22
281 / 146 / 4
Регистрация: 11.07.2009
Сообщений: 606
13.02.2010, 20:01
Цитата Сообщение от insideone Посмотреть сообщение
Он не умеет делать такое
sscanf умеет

Добавлено через 1 минуту
Цитата Сообщение от insideone Посмотреть сообщение
но впринципе класс Log изначально проектируется под 1 экземпляр который создаться статически,
это у меня он статический. можешь его динамически создавать.
также можешь динамически его конфигурировать нужным типом подкласса.
почитай у GoF про этот паттерн.
1
Автор FAQ
 Аватар для insideone
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
13.02.2010, 20:17  [ТС]
Цитата Сообщение от zim22 Посмотреть сообщение
sscanf умеет
Э.. это не для вывода ли? Мне вообще нужно сохранить строки эти чтобы потом их преобразовывать в цифры и послать в функцию. В общем я создал этот класс qString как небольшую замену регулярным выражениям, по крайне это удовлетворяем моим подтребностям. Здесь совмещены удачные (по моему мнению) идеи из Lua (-1 значит последний элемент), JavaScript - jQuery (цепные функции). Хотя конечно я много раз слышал что нельзя программировать на C++ как на других языках, но тут я правда знаю что творю.

GoF возьму на заметку, спасибо
0
14.02.2010, 03:29

Не по теме:

Он не умеет делать такое
Фух.. не дай бог.. такое в Стандарте увидеть.. :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2010, 03:29

Преобразование типов
Ребята помогите разобраться с проблемой вот строка кода TrayIcon-&gt;Handle = LoadImage(HInstance,L&quot;MY_ICON&quot;,RT_ICON,0,0,0);...

Преобразование типов переменных
Доброго вечера. Можете показать при пример преобразования переменной TString в AnsiString Добавлено через 8 минут Что я не...

Преобразование типов в XE2
При компиляции проектов (работают в Builder C++ 6 в BDS 2006) в среде XE2 - возникают новые ошибки, в частности вида: Cannot convert...

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

Преобразование типов из Object.
Подскажите пожалуйста - как преобразовать из Object в UdpClient; Вот есть такая процедурка в нее передаю и в ней нужно произвести...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru