Форум программистов, компьютерный форум 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++ Лабораторная для заочника Здравствуйте, нужна помощь в написании программы. Задано некое математическое выражение, проверить соблюдается ли равенство открывающихся и закрывающихся скобок. Если равенство соблюдается, то вывести соответствующее сообщение, в противном случае вывести количество открывающихся и закрывающихся скобок. Вчера нашел на этом сайте похожую задачу, думал подстроить под себя, но ничего не... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.10.2013, 14:24     Как работает компилятор при создании объекта
Ilot, Почитайте стандарт.
8.5 Initializers

The initialization that occurs in the form
C++
1
T x = a;
as well as in argument passing, function return, throwing an exception (15.1), handling an exception
(15.3), and aggregate member initialization (8.5.1) is called copy-initialization.
Про copy-initialization почитайте сами, вырезки из стандарта мне кидать лень. Но суть в том, что сначала выбирается конструктор преобразования, который может принять объект находящийся с правой стороны оператора присваивания (const char* в данном случае), после чего, если такой конструктор найден - конструируется объект, используя конструктор с этим параметром, после конструирования объекта компилятор проверяет, что конструктор копирования с нужной сигнатурой имеет место быть, если нет - кидает ошибку, если есть может вызвать, а может не вызвать конструктор копирования, зависит от настроек компилятора.

Если позволяет английский более подробно можно прочесть тут: http://stackoverflow.com/questions/1...t-initializati

Добавлено через 21 секунду
ninja2, Оператор присваивания тут не зовется.
 
Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru