Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/55: Рейтинг темы: голосов - 55, средняя оценка - 4.55
-12 / 4 / 2
Регистрация: 05.05.2014
Сообщений: 90

Как вызвать другой конструктор для уже созданного объекта конструктором по умолчанию?

05.06.2015, 16:30. Показов 11845. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс в котором несколько конструкторов, Мне в некоторых местах нужно создавать объекты класса с конструктором по умолчанию для предопределения. Как вызвать конструктор для существующего объекта?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2015, 16:30
Ответы с готовыми решениями:

Как вызвать конструктор для неизвестного объекта?
Добрый вечер. Помогите мне с задачей. Хочу написать шаблонный класс вектор. И в конструкторе по умолчанию нужно прописать конструкцию...

Получение объекта connection созданного конструктором
Никак не могу найти как получить объект connection если база данных подключена с помощью "Мастер настройки источника данных"....

Будет ли считаться конструктором по умолчанию данный конструктор?
Это конструктор с параметрами или конструктор по умолчанию? class MyClass { public MyClass(int a = 1,int b = 2) { ...

35
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
05.06.2015, 19:27
Студворк — интернет-сервис помощи студентам
Blizzru, если твой класс прост и ты не хочешь писать методов конфигурации - то можно обойтись временным объектом и конструктором копирования
Кликните здесь для просмотра всего текста
C++
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
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
 
class cTest{
protected:
    size_t value;
public:
    cTest(size_t val = 0){
        value = val;
    }
    size_t data(){
        return value;
    }
};
 
int main(){
    size_t elem;
    size_t size;
    cTest test[5];
    size = sizeof(test) / sizeof(test[0]);
    for( elem = 0; elem < 5; elem++ )
    {
        cout<<elem<<" ";
        cout<<" before: "<<test[elem].data();
        if( elem % 2 )
            test[elem] = cTest(8);
        else
            test[elem] = cTest(9);
        cout<<" after : "<<test[elem].data();
        cout<<endl;
    }
    return 0;
}

http://codepad.org/Qy4lpAYM
0 before: 0 after : 9
1 before: 0 after : 8
2 before: 0 after : 9
3 before: 0 after : 8
4 before: 0 after : 9
1
05.06.2015, 19:28

Не по теме:

Ну так и стоит говорить, что этот пример плохой и приводить пример лучше.
Намеки можно неправильно осмыслить и сделать новые неправильные выводы.
Я вообще не знаю, что означает делегирование.
Так лучше бы было?
MyClass(){MyClass X(5); cout<<"Constr2\n";};
Ну умрет X еще в конструкторе, а может он нигде и не нужен больше., кто знает.

0
Заблокирован
05.06.2015, 19:37
Посмотри на 14 пост, случаи бывают разные.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.06.2015, 19:37

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Ну так и стоит говорить, что этот пример плохой и приводить пример лучше.
А я именно так и сделал.

Цитата Сообщение от lss Посмотреть сообщение
Всё равно извращение. Какой смысл в конструкторе с одним параметром? Что мешает так сделать?
Ничего не мешает. Просто удобнее делать так:
C++
1
A a( 456 );
0
Заблокирован
05.06.2015, 19:39
Хватит спорить. Проблема решена.
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.06.2015, 19:41
Цитата Сообщение от pointer Посмотреть сообщение
Хватит спорить. Проблема решена.
Ну раз ты свою проблему решил, тогда дай нам решить свою

Я извиняюсь перед администрацией что разговор перетёк в другое русло, но не удаляйте значимые сообщения по причине Offtop.
0
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
05.06.2015, 19:42
Цитата Сообщение от daslex Посмотреть сообщение
Ну так и стоит говорить, что этот пример плохой и приводить пример лучше.
Пост 15.
Возможность так писать добавилась начиная с С++11.
Целесообразность - это отдельный вопрос, иногда может пригодиться.
К демопримеру от castaway с точки зрения целесообразности придираться нет смысла. На то он и демопример.
1
05.06.2015, 19:45

Не по теме:

castaway, я не Вам, я о выссказывании Tulosba. Он сделал справедливое замечание не прямым текстом, а намеком.
Это сейчас я ответил только, чтобы не осталось недопонимания как я к чему отнесся и что я кому сказал.

0
05.06.2015, 19:47

Не по теме:

daslex, ну тогда пардон..

0
05.06.2015, 19:48

Не по теме:

Да пусть вырежут и тему сделают, если это "возникшее русло" представляет собой интерес. Лучше сейчас чем потом.

0
05.06.2015, 19:49

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Да пусть вырежут и тему сделают, если это "возникшее русло" представляет собой интерес. Лучше сейчас чем потом.
Частично согласен.

0
11 / 11 / 5
Регистрация: 01.04.2015
Сообщений: 120
05.06.2015, 20:20
а еще момент можно ли в прописать такой метод класса кторый бы создавал ообьект и ипспольщзовал там конструктор
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
05.06.2015, 20:22
Цитата Сообщение от maestro4250 Посмотреть сообщение
а еще момент можно ли в прописать такой метод класса кторый бы создавал ообьект и ипспольщзовал там конструктор
Покажи нерабочий пример того что ты хочешь сделать. Лично я ничего не понял.
0
11 / 11 / 5
Регистрация: 01.04.2015
Сообщений: 120
05.06.2015, 20:25
castaway, нерабочего нет я интересуюсь)
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
05.06.2015, 21:16
Цитата Сообщение от maestro4250 Посмотреть сообщение
а еще момент можно ли в прописать такой метод класса кторый бы создавал ообьект и ипспольщзовал там конструктор
Вот так пойдет или что-то конкретнее интересует?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
using namespace std;
 
class MyClass{
    int x={10};
    MyClass *obj;
public:
    MyClass(){ cout<<"constructor\n";}
    void CallConstructor(){  //Метод создает объект, автоматически срабатывает конструктор
        obj=new MyClass;
       // obj->CallConstructor(); //а вот так можно зациклить и программа упадет
        delete obj;
        };
 
};
 
 
 
int main(){
   MyClass A;
   A.CallConstructor();
 
}
0
11 / 11 / 5
Регистрация: 01.04.2015
Сообщений: 120
06.06.2015, 12:47
daslex, Подойдет спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2015, 12:47

Что такое конструктор по умолчанию? Как инициализируются данные-члены объекта?
Что такое конструктор по умолчанию? Как инициализируются элементы данных объекта, если класс имеет только неявно определенный...

Будет ли утрачена память, когда конструктор копирования вызывается для уже существующего объекта класса?
class A { char * v; A(); ~A(); A(const A &amp;obj); } ///////////////////// A::A() {

В чем разница между конструктором по умолчанию и конструктором с параметрами?
Объясните пожалуйста в чем разница между конструктором по умолчанию и конструктором с параметрами, константа внутри класса объявляется...

Как вызвать метод OnValueChanged() для слайдера, созданного в OnGUI()
Уважаемые программисты! Как вызвать метод OnValueChanged() для слайдера, созданного в OnGUI() или подскажите, пожалуйста как...

Ошибка создания объекта через конструктор по умолчанию
Доброго времени. Хочу перегрузить оператор ввода для менюшки из if, но не получается. Можете подсказать в чем ошибка? #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос. Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех. А широколиственный лес тоже имеет самую крутую биомассу. То почему не возникло их симбиоза? Это. . .
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне. Это уже новая модель, модель сукцессии грибной. потоки фосфора, азота. Углерода. 5 видов организмов. Я даже. . .
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru