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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перемещение элемента http://www.cyberforum.ru/cpp-beginners/thread990454.html
Подскажите, пожалуйста, с помощью каких функций можно задать перемещение (по кругу например) нарисованного элемента в picturebox?
C++ Последовательность целых чисел Вводится последовательность челых чисел,0-конец последовательности.Для каждого числа последовательности найти сумму его простых делителей(функцией оформить определения суммы простых делителей числа). Добавлено через 3 часа 13 минут Подскажите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread990447.html
C++ Вычисление логарифма с помощью ряда Тейлора. Программа не работает, не могу понять где ошибся
Как я понимаю, программа где-то зацикливается, но вот где именно не могу понять, подскажите, где я ошибся или что-то упустил. Суть задания таково: нужно написать программу, которая высчитывает функцию которая равна ln((X+1)/(X-1)), и вычисление её с помощью ряда Тейлора 1/(2n+1)*X2n-1, с точностью e. #include "stdafx.h" #include "iostream" #include "conio.h" #include "math.h" using...
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 Вопрос по С++. Можно ли создать такую программу, которая перехватывала бы событие с клавиатуры, сравнивала его с списком разрешенных символов (к примеру кнопки ZXCVB), если событие было вызвано одной из этих кнопок, то программа бы...
C++ Вывести новый массив состоящий из элементов начального массива в заданной зависимости 1.Нужно ввести размерность начального одномерного массива c клавиатуры. Элементы заполняются с помощью rand(); #include <time.h> #include <iostream> #include <iomanip> void main() { int n; cin>>n; int *mass=new int; for (int i=0; n<i; i++) подробнее

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

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

28.10.2013, 14:18. Просмотров 1287. Ответов 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 раз. С чем это связано?
Миниатюры
При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru