Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Критика архитектуры набора планов https://www.cyberforum.ru/ cpp/ thread335057.html
Требуется создать систему похожую на Hierarchical task network то есть некоторая библиотека планов и каждый план может содержать подпланы, получать результаты выполнения подпланов и передавать их...
Решение игры "вирус"? C++
В инете есть много флеш игр на тему вирусов. Поле поделено на квадраты из нескольких цветов и нужно всё заразить на наименьшее число ходов. Хочу потренироваться находить решения таких задач. Для...
Чекер удаленных серверов на ОС C++
Доброго времени суток. Я этот форум читаю уже достаточно давно, но все никак не приходилось здесь зарегистрироваться. Сейчас обращаюсь к вам с просьбой. Помогите написать программку, которая будет...
C++ Quest3D 4.2.3 Приветсвую всех!!! Люди мне нужна помощь. Никак не могу найти в сети Quest3D 4.2.3.точнее нашел но все ссылки либо платные либо не работают.если кто может дать мне работующюю ссылку буду очень... https://www.cyberforum.ru/ cpp/ thread331760.html
C++ Математика для программистов(НЕ АБСТРАКТНО) https://www.cyberforum.ru/ cpp/ thread331367.html
Уважаемые программисты! Какие книги рекамндуете по математике!
C++ Как сделать перезагрузку сайта с помощью таймера?
ну во общем тут такое дело нужен код который будет отправлять запрос на сайт перезагружаться и опять оправлять запрос на сайт пример как тут webbrowser1.navigate(' '+edit1.text) webbrowser1.refresh ...
Как написать графическую библиотеку? C++
Есть много графических библиотек(MFC, VCL, WxWidgets). А как можно создать свою(хотя-бы примитивную)???:umnik:
C++ Поменять код на С++ Нужно преобразовать в С++ этот код. uses crt; const Max = 100; type MyType = array of integer; procedure CreatArr(var TheArr:MyType;Size:integer); var i:integer;... https://www.cyberforum.ru/ cpp/ thread330820.html
C++ Функция удаления элемента из дерева https://www.cyberforum.ru/ cpp/ thread330758.html
В данной программе реализовано почти все,кроме фунции удаления,которую я так и не смог реализовать. Руководствуюсь методами: -если это лист, то просто удаляем. -если элемент имеет левое поддерево,...
C++ Дана действительная квадратная Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы |............#| |........###| |....#####| |#######| У меня... https://www.cyberforum.ru/ cpp/ thread330688.html
172 / 169 / 19
Регистрация: 31.08.2010
Сообщений: 569
22.07.2011, 13:38  [ТС] 0

неявное преобразование в C++

22.07.2011, 13:38. Просмотров 3076. Ответов 4
Метки (Все метки)

Ответ

Всем спасибо за комментарии. Разобрался.
Тоже написал простой пример, который описывает данную ситуацию:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
 
class test {
  public:
    explicit test(const std::string &book = "") : tbook(book) {}
    bool same_isbn(const test &rhs) const { return isbn == rhs.isbn; }
  private:
    std::string tbook;
    std::string isbn;
};
 
int main() {
  std::string null_book = "9-999-99999-9";
  test item;
  item.same_isbn(test(null_book));
  return 0;
}
В данном примере, функция same_isbn ожидает в качестве аргумента объект класса test. Если не указать ключевое слово explicit, то можно будет использовать следующую конструкцию:

C++
1
item.same_isbn(null_book);
В данном случае, чтобы создать новый объект класса test из строки null_book, компилятор использует конструктор класса test, который получает объект класса string. Этот вновь созданный (временный) объект класса test и передается функции same_isbn().

Если указать ключевое слово explicit. То данная конструкция вызовет ошибку компиляции. Для этого необходимо явно указать объект класса test:

C++
1
item.same_isbn(test(null_book));
Объявление конструктора явным запрещает только неявное его применение. Для явного создания временного объекта применим любой конструктор

Вернуться к обсуждению:
неявное преобразование в C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2011, 13:38
Готовые ответы и решения:

Не происходит неявное преобразование типов
Проблема такая. Вычитал, что типы с меньшим диапазоном допустимых значений без проблем могут...

Как в VS2008 отключить неявное преобразование встроенных типов?
как отключить неявное преобразование встроенных типов, чтобы компилятор выдавал ошибку, а не...

Неявное преобразование типа
Привет. Решаю задачу, не могу решить проблему. Есть класс 'time' и производный от него класс...

Неявное преобразование типов
Здравствуйте, определен класс: template&lt;typename T&gt; class Polynomial { public: ...

4
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.