Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 25.02.2016
Сообщений: 35

Literal как параметр конструктора

06.07.2017, 09:41. Показов 980. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Описываю клас который в себе содержит некое текстовое поле. Хотелось бы сделать его инициализацию при создании объекта. Значит описал я конструктор вида obj_t::obj_t (const int8_t *data){...}. Ну и пытаюсь создать объект: obj_t obj1("some text"); Как результат ошибка компиляции: "no instance of constructor "obj_t::obj_t" matches the argument list. Argument types are: (char const [10])"

Почему, когда я вызываю простую функцию вида foo("text"); компилятор ей передает параметр как "char const *", а когда метод то он пытается впихнуть "(char const [10])"?

Можно не писать обширных ответов, просто скажите как это явление называется и где о нем почитать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2017, 09:41
Ответы с готовыми решениями:

Параметр конструктора
Ребята, помогите. Как создать конструктор, который принимает символ в качестве параметра? Заранее благодарен.

Не понятен параметр конструктора
Здравствуйте, помогите пожалуйста расшифровать вот это (это конструктор) - IntArray (const IntArray &rhs); Мы тут передаем в...

параметр конструктора взятый с потолка
Ребят, помогите мыслями кто какими может. template<class Type, class link, class node> class Stack { link STACK; unsigned...

21
Заблокирован
06.07.2017, 15:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от yaroslav555 Посмотреть сообщение
когда я вызываю простую функцию вида foo("text"); компилятор ей передает параметр как "char const *", а когда метод то он пытается впихнуть "(char const [10])"
В функцию он тоже передаёт как "(char const [10])", только потом неявно преобразует в "char const*".

Покажи как ты создаёшь объект. Я думаю, я знаю, почему функцию получается вызвать, а создать объект — нет.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12923 / 6792 / 1818
Регистрация: 18.10.2014
Сообщений: 17,187
06.07.2017, 17:19
Цитата Сообщение от yaroslav555 Посмотреть сообщение
Почему, когда я вызываю простую функцию вида foo("text"); компилятор ей передает параметр как "char const *", а когда метод то он пытается впихнуть "(char const [10])"?
"some text" - это именно char const [10], независимо от того, передаете вы это в конструктор или в другую функцию. А то, что в конструкторе "не работает", означает, что ваш int8_t и char - это разные типы. Точно так же не будет работать и в foo.

Цитата Сообщение от yaroslav555 Посмотреть сообщение
Я пробовал изменить все int8_t на char! это не изменило ровным счетом ничего.
Вы что-то выдумываете. Показывайте код, на котором это проявляется.

Цитата Сообщение от yaroslav555 Посмотреть сообщение
В случае с функцией такое приведение происходит и всё прекрасно работает.
Вы что-то выдумываете. Показывайте код, на котором это проявляется.

Цитата Сообщение от yaroslav555 Посмотреть сообщение
но факт в том что мой компилятор по разному ведет себя в случае простой функции и конструктора.
Не бывает.

Цитата Сообщение от YarRainbow Посмотреть сообщение
Это не решает той проблемы, что ваш компилятор представляет строковые литералы как массив char, видимо х)
Все компиляторы С++ представляют обычные строковые литералы как массив char.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.07.2017, 17:19
Помогаю со студенческими работами здесь

В чём отличия конструктора копирования и конструктора перемещения? Где и как их нужно использовать?
Помогите разобраться в копирующем и перемещающем конструкторах. В чём их существенное отличие и какой плюс от использования перемещающего...

Параметр конструктора класса нигде не задействован, но его отсутствие влияет на компиляцию, почему так?
#include <string> #include <vector> using namespace std; ////////////////////////////////////////// class kl { ...

Почему при вызове конструктора из конструктора нельзя передавать this как аргумент?
Есть такой код: public class Order { { } Order(){ this(this.hashCode());//ошибка тут } ...

Как задать цвет текста для Literal.Text?
Скажите пожауйста, а как задать цвет текста для LtrMessage:Text. Я это делаю вот так: LtrMessage.Text = "<font color =...

Exception "Недопустимый параметр" при вызове конструктора Bitmap(Image)
Image diff() { if (curr == null || prev == null) return null; Bitmap rszCurr = new Bitmap(curr, new...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru