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

copy constructor operator= - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ А сколько у вас ушло времени на изучение C++ ??? http://www.cyberforum.ru/cpp-beginners/thread338725.html
Я понимаю, это зависит от человека....но все же:)
C++ Проект на С++ Добрый день. МБ вопрос глупый. Как мне из своего проекта на Visual Studio сделать нормальное человеческое приложение? Т.е. не папка Project, ехе-файл с дурацкой иконкой, всякие файлы .cpp и .h... http://www.cyberforum.ru/cpp-beginners/thread338719.html
Двусвязный список - Error C2011: ElementsList: переопределение типа "struct" C++
Что я сделал не правильно? typedef struct ElementsList { struct ElementsList *Prev; struct ElementsList *Next; TiXmlElement *Cur; } ElementsList; Выдает ошибку: ...
C++ как сделать так, чтоб если вводишь не цифры, а буквы он не выкидывал из программы, а выполнял команду
Всем привет. Помогите. я начал программировать в С++ и спрогал калькулятор. вот код: #include <iostream> #include <cmath> using namespace std; int main (void) { long double num1, num2,...
C++ Компиляторы с поддержкой стандарта C++ 2009 http://www.cyberforum.ru/cpp-beginners/thread338648.html
Учусь по книге C++ для чайников 6-ое изд В книге есть елементы стандарта С++ 09 А какие IDE(с компилятором) с поддержкой этого стандарта есть ????? поиск юзал :cry:не нашёл
C++ Простой дек Помогите решить задачу : Реализуйте структуру данных "дек". Напишите программу, содержащую описание дека и моделирующую работу дека, реализовав все указанные здесь методы. Программа считывает... подробнее

Показать сообщение отдельно
LosAngeles
Заблокирован
03.08.2011, 17:44  [ТС]
Цитата Сообщение от Kastaneda Посмотреть сообщение
А данная форма вызова деструктора, если верить Б.Эккелю ("Философия С++"), возможна только если память под объект была выделенна placement new.
C++
1
2
3
4
5
6
7
8
9
10
int main(){
    string p("yrtyrt");
    string *pr = &p;
 
    p.~basic_string();
    new(pr) string("dfgdfg");
 
 
    return 0;
}
я проверил, вроде для placement new неважно объект был порождён другой формой new или создан в стеке. И в том примере с оператором this ведь может и на стек указывать, тем не менее никаких SIGABRT я не получал от системы. Тут наверно главное соблюдать "равновесие" конструкторов и деструкторов

Цитата Сообщение от silentnuke Посмотреть сообщение
как раз деструктор можно явно вызывать, пока не встречал случаев, где не получилось бы его явно вызвать)
да, но главное соблюдать осторожность. Язык сам неявно вызовет деструктор для статических объектов при терминации, а для локальных при выходе из scope(блин забыл как это по русски?). Если такие объекты уничтожаешь явно, наверно надо не забыть запилить туда другой такой же объект, как в этом примере.
Такое применение placement new и явного вызова ~ я первый раз кстати встретил. Единственный пример который видел до этого был как раз наоборот. Где то выделялось pnew и потом для этого деструктор явно вызывался
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru