Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

преобразование типов в с++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести предложения, заканчивающие знаком аопроса http://www.cyberforum.ru/cpp-beginners/thread807154.html
Вывести вопросительные предложения где ошибка? #include <iostream> #include <string> using namespace std; int main() { string s,s4="";
C++ Диапазон чисел - вывести по порядку, указывая сколько строк должно быть Здравствуйте! Я новичек, и пробую сам изучать С++ решая задачки. Вот собственно застрял на одном вопросе. Знаю что решение довольно простое. Но чегото никак не выходит, и гуглем не мог найти... http://www.cyberforum.ru/cpp-beginners/thread807153.html
Динамический массив произвольного размера C++
динамический массив заданного размера: int *massiv = new int а как организовать произвольного размера? спасибо.
C++ Адреса элементов массивов
Добрый вечер. Никак не могу понять зависимость типа переменной массивов и вывода адресов. Пример: #include <iostream> using namespace std; int main () {
C++ Функция потока http://www.cyberforum.ru/cpp-beginners/thread807130.html
Подскажите пожалуйста, как сделать Перевод числа оформить как функцию потока. Ввод числа происходит до запуска потока, а вывод строки – по его завершению. Собственно функции реализованы, но проблемы...
C++ Оптимизация алгоритма #include<iostream> #include<stdlib.h> #include<time.h> #include<iomanip> using namespace std; #define jaba for(i=0; i<k; i++) cout<<sum(a,i)<<"\n" const int k = 4; подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.03.2013, 03:06
Он видит строку x = 12345. Видит знак равно; понимает, что это присваивание; смотрит на тип того, что присваивается; идёт искать по определённым правилам метод myclass& myclass::operator=(R); где R — это тип, сравнимый с типом результата вычисления правой части выражения (тут это int), или тип, который можно привести к сравнимому. Если цепочка преобразований типов есть, то они выполняются (возможно, с созданием временных объектов, а может и нет), после чего вызывается найденный ранее подходящий operator=(); если нет, то получаем ошибку компиляции.

Если не определять дополнительных методов operator=(), то у вас будет лишь стандартный myclass& myclass::operator=(const myclass &). Так что действительно компилятор пойдёт искать способ привести int к этой ссылке. Если не найдёт (а он не найдёт, так как вы его не определяли), то пойдёт искать цепочку преобразований. Такой цепочкой окажется приведение int к myclass (с помощью конструктора с одним параметром, не объявленного как explicit), а потом приведение myclass к const myclass& (с помощью взятия адреса).
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru