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

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемещение элемента http://www.cyberforum.ru/cpp-beginners/thread990454.html
Подскажите, пожалуйста, с помощью каких функций можно задать перемещение (по кругу например) нарисованного элемента в picturebox?
C++ Последовательность целых чисел Вводится последовательность челых чисел,0-конец последовательности.Для каждого числа последовательности найти сумму его простых делителей(функцией оформить определения суммы простых делителей числа).... http://www.cyberforum.ru/cpp-beginners/thread990447.html
C++ Вычисление логарифма с помощью ряда Тейлора. Программа не работает, не могу понять где ошибся
Как я понимаю, программа где-то зацикливается, но вот где именно не могу понять, подскажите, где я ошибся или что-то упустил. Суть задания таково: нужно написать программу, которая высчитывает...
C++ Ошибка при вызове деструктора
Всем привет ! Есть класс class building { private: string *location_street; unsigned int *number_of_building; public : building() { location_street = new string("Default");
C++ Изменение фокуса клавиатуры http://www.cyberforum.ru/cpp-beginners/thread990416.html
Доброго времени суток. Вожусь тут с одной интересной мне задачей. Обсуждал ее в этой ветке форума. http://www.cyberforum.ru/windows7/thread990204.html#post5247288 Вопрос по С++. Можно ли создать...
C++ Вывести новый массив состоящий из элементов начального массива в заданной зависимости 1.Нужно ввести размерность начального одномерного массива c клавиатуры. Элементы заполняются с помощью rand(); #include <time.h> #include <iostream> #include <iomanip> void main() { int n;... подробнее

Показать сообщение отдельно
Виктор_Сен
33 / 26 / 1
Регистрация: 01.08.2011
Сообщений: 176

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О - C++

28.10.2013, 14:18. Просмотров 1354. Ответов 27
Метки (Все метки)

Вот такой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A
{
public:
    A(){}
    virtual ~A(){}
};
 
class C
{
public:
    C(A a){}
    ~C(){}
    C(C& c){}
};
 
int main()
{
    C c=C(A());
 
    system("pause");
    return 0;
}
Если посмотреть в отладчике, то видно, что конструктор C() вызывается 2 раза, причём второй раз конструктор копирования. Я понимаю, если бы это было с конструктором A(), т. к. A() передаётся по значению. Но ни могу понять почему именно конструктор C(). Причём если деструктор класса A сделать не виртуальным, то конструктор класса C() будет вызываться 1 раз. С чем это связано?
0
Миниатюры
При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru