реклама на сайте
подробности

 
 
> WinAVR создаёт два экземпляра конструктора
Vova75
сообщение Jun 4 2009, 20:33
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 11-08-08
Из: г. Тверь
Пользователь №: 39 554



Всем привет !

Случайно заметил в листинге два экземпляра конструктора.
Для конструктора класса "T_PID" в листинге сpp-файла обнаружилось две функции:
_ZN5T_PIDC2Effff
_ZN5T_PIDC1Effff

Причём по содержанию они идентичны.
В дизасемблере (.lss) присутствуют обе функции, а используется "_ZN5T_PIDC1Effff".

Зачем нужен второй экземпляр ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aesok
сообщение Jun 6 2009, 06:13
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Vova75 @ Jun 5 2009, 00:33) *
Всем привет !

Случайно заметил в листинге два экземпляра конструктора.

Зачем нужен второй экземпляр ?



Здесь есть ответ на Ваш вопрос
http://www.gnu.org/software/gcc/bugs.html

Цитата
Non-bugs
....
C++
....
G++ emits two copies of constructors and destructors.

In general there are three types of constructors (and destructors).

1.The complete object constructor/destructor.
2.The base object constructor/destructor.
3.The allocating constructor/deallocating destructor.
The first two are different, when virtual base classes are involved.
Go to the top of the page
 
+Quote Post
Vova75
сообщение Jun 6 2009, 10:28
Сообщение #3





Группа: Участник
Сообщений: 10
Регистрация: 11-08-08
Из: г. Тверь
Пользователь №: 39 554



Цитата(aesok @ Jun 6 2009, 10:13) *
Здесь есть ответ на Ваш вопрос
http://www.gnu.org/software/gcc/bugs.html

Спасибо, понял.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 03:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.01559 секунд с 7
ELECTRONIX ©2004-2016