powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удаление объекта в конструкторе
8 сообщений из 58, страница 3 из 3
Удаление объекта в конструкторе
    #33967819
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedНу- разделите мне аллокацию и инициализацию для след иерархии

...



Эээ, а вам по моему как раз и сказали "а вы так не делайте" (c)
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #33969251
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedНе, таки вы посмотрите что делается. До чего дошел прогресс
...

угумс...лет дцать назад...

(круглый)
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #33969385
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) blindedНу- разделите мне аллокацию и инициализацию для след иерархии
...

Эээ, а вам по моему как раз и сказали "а вы так не делайте" (c)
ну так я и не предлагал делать. Просто не хотелось быть голословным....

kolobok0 blindedНе, таки вы посмотрите что делается. До чего дошел прогресс
...
угумс...лет дцать назад...
(круглый)
Мы будем -бип- меряться или все же разделим аллокацию и инициализацию в предложенном примере. или вы готовы сдаться?
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #33971226
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded...Мы будем -бип- меряться или все же разделим аллокацию и инициализацию в предложенном примере. или вы готовы сдаться?

1) что есть
"-бип-"
2) "сдаться" - это как ?

молодой человек - не трахайте мозги. Вам выдали решения. Вы не поверили, не захотели, не пожелали, посчитали унизительным и т.д.. Вас направить к книжкам - Вы, и туда же не пойдёте. Ну и смысл ? Ради того что бы "сдаться" или "не сдаться" ? Если Вы так ставите вопрос - я сдаюсь. Заранее и без поворотно. Для моих знаний, умений и тысяч инсталяций в различных странах мира - это как то фиолетово...


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #34748587
BeSSoRioN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sandro_KПросто конструктор надо сделать приватным и разрешить создавать объект только при помощи статической функции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
class A
{
private:
    A()
    {
        ......
        if( нельзя создать объект)
            isConstructed = false;
        else
            isConstructed = true;
    }
     bool isConstructed;
public:
    static A* Create()
    {
        A *tmp = new A();
        if(isConstructed)  
             return tmp;
        else
        {
            delete tmp;
            return NULL;
        }
    }
};


Только это не работает, так как флаг в самом объекте хранить нельзя (он м.б. не создан вместе с объектом класса). Предлагаю альтернативу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
class A
{
private:
    A(bool* isConstructed)
    {
        ......
        if( нельзя создать объект)
            *isConstructed = false;
        else
            *isConstructed = true;
    }
public:
    static A* Create()
    {
        bool isConstructed;
        A *tmp = new A(&isConstructed);
        if(isConstructed)  
             return tmp;
        else
        {
            delete tmp;
            return NULL;
        }
    }
};
Или как вариант - использовать статический флаг
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #34748991
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeSSoRioN пишет:

> class A
> {
> private:
> A()
> {
> ......
> if( нельзя создать объект)

Это в принципе неправильно. Конструктор объект не создает, а инициализирует.
Поэтому несоздать объект он принципиально не может.
А решается такое просто - в объекте заводится флаг валидности,
который запрещает все действия с объектом если что.
Ну и возможность проверить его надо иметь.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #34750315
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BeSSoRioN
...
Только это не работает, так как флаг в самом объекте хранить нельзя (он м.б. не создан вместе с объектом класса).
...
Или как вариант - использовать статический флаг

Почему флаг нельзя хранить в объекте, помоему его именно в объекте и надо хранить?

Вообще топику уже год, почему его вдруг решили опять поднять?
...
Рейтинг: 0 / 0
Удаление объекта в конструкторе
    #34750360
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У MasterZiv дежа-вю. Там по-моему перебрали все возможные вариантыобработки ошибки конструирования объекта
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Удаление объекта в конструкторе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]