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

Как работает компилятор при создании объекта - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод таблицы значений фенкций http://www.cyberforum.ru/cpp-beginners/thread987622.html
Написать программу,которая выводит таблицу значений финкции >^(x-2)+(x+1). Диапазон изменения аргумента вводится пользователем так же как и шаг приглашение аргумента.
C++ Удалить столбец матрицы с номером K Дана матрица размера M × N и целое число K (1 ≤ K ≤ N ). Удалить столбец матрицы с номером K. #include "stdafx.h" #include <iostream> #include <time.h> #include <stdio.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { http://www.cyberforum.ru/cpp-beginners/thread987615.html
Решение квадратного уравнения C++
Написать программу решение квадратного уравнения. Программа должно проверять правельность исходных данных и в случае, если коэффициент при второй степени неизвестного равен нулю, выводить соответствующее сообщение.
Перегрузка операций C++
3. Множество с элементами типа char. Дополнительно перегрузить следую-щие операции: • -  удалить элемент из множества (типа set-char); • проверка на подмножество; • !=  проверка множеств на неравенство.
C++ Взаимное включение заголовочных файлов http://www.cyberforum.ru/cpp-beginners/thread987567.html
Нужно передать объект по ссылке Вот как сейчас: //LoadImages.h class LoadImages { ttfInit(); }; //LoadImages.cpp void LoadImages::ttfInit() {
C++ Лабораторная для заочника Здравствуйте, нужна помощь в написании программы. Задано некое математическое выражение, проверить соблюдается ли равенство открывающихся и закрывающихся скобок. Если равенство соблюдается, то вывести соответствующее сообщение, в противном случае вывести количество открывающихся и закрывающихся скобок. Вчера нашел на этом сайте похожую задачу, думал подстроить под себя, но ничего не... подробнее

Показать сообщение отдельно
ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
25.10.2013, 14:12     Как работает компилятор при создании объекта
Цитата Сообщение от Ilot Посмотреть сообщение
Все это время я полагал, что сперва запускается конструктор копирования, а вот он в свою очередь вызывает конструктор с одним аргументом.
Конструктор копирования вызывается когда копируется объект например:
C++
1
2
A aa(7);//тут конструктор преобразования
A aa1(aa); //тут конструктор копирования
Аргументов у конструктора преобразования может быть сколько угодно.

А неоднозначность от похоже простой пример есть допустим у объекта А конструктор преобразования из double и оператор приведения в double, и если мы запишем например что то врде так:
C++
1
2
A aa;
A bb(a); //тут должно быть неоднозначность две функции могут вызваться как (double) так и A(const A&)
Это может быть пример простецкий да и компиляторы ругаются не все на него возможно, ни в этом примере где вызов конструктора копирования, от не помню вроде если так не будет ругаться то можно записать другой пример:
C++
1
double c=aa+3.14+bb;
тут снова не понятно во что их приводить, то ли double 3.14 приводить к A или наоборот объекты типа A приводить к double.

Все ошибки по неоднозначности легко устраняются применив явный вызов да и все.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru