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

Как вызвать конструктор с параметрами в конструкторе без параметров? - C++

Восстановить пароль Регистрация
 
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
30.07.2014, 23:17     Как вызвать конструктор с параметрами в конструкторе без параметров? #1
Как вызвать конструктор с параметрами в конструкторе без параметров? То есть что бы конструктор с параметрами выступал в роли основного. В одном классе, пример:

C++
1
2
3
4
5
6
7
8
9
10
11
12
class Test
{
private:
 int value;
public:
 Test()
 {
  Test(5);
 }
 Test(int v): value(v)
 {}
}
Конструктор как бы вызывается, но переменная хранит или мусор или адрес...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 23:17     Как вызвать конструктор с параметрами в конструкторе без параметров?
Посмотрите здесь:

как вызвать конструктор? C++
как привильно создать и вызвать конструктор для массив обьектов C++
C++ Конструктор без параметров
C++ Как вызвать конструктор для неизвестного объекта?
Как вызвать конструктор по указателю? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jewbacabra
1791 / 1506 / 539
Регистрация: 24.04.2014
Сообщений: 4,227
30.07.2014, 23:25     Как вызвать конструктор с параметрами в конструкторе без параметров? #2
C++
1
2
3
4
5
6
class Test {
private:
    int value;
public:
    Test(int v = 5) : value(v) {}
}
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
30.07.2014, 23:38  [ТС]     Как вызвать конструктор с параметрами в конструкторе без параметров? #3
Вопрос не прочитал или не понял.
К примеру:
C++
1
Test *t = new Test();
И что бы тут конструктор по умолчанию инициализировался конструктором с 1 параметром по типу Test(0);. Как его вызвать к конструкторе без параметров?
IIARTEMII
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
Завершенные тесты: 1
30.07.2014, 23:43     Как вызвать конструктор с параметрами в конструкторе без параметров? #4
C++
1
2
3
4
5
6
7
class Test {
private:
    int value;
 
public:
    Test() : value(5) {}
};
?

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class _Test {
private:
    int value;
 
public:
    _Test() : value(5) {}
 
    _Test(int v) : value(v) {
    }
};
 
class Test : public _Test {
    public:
        Test() : _Test(0) {}
};
**на тему
Цитата Сообщение от OlegPL Посмотреть сообщение
конструктор по умолчанию инициализировался конструктором с 1 параметром
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
30.07.2014, 23:51     Как вызвать конструктор с параметрами в конструкторе без параметров? #5
Цитата Сообщение от OlegPL Посмотреть сообщение
Как вызвать конструктор с параметрами в конструкторе без параметров?
Делегирование конструкторов появилось в C++11. Можно вызывать один конструктор из другого. Раньше приходилось писать дополнительную функцию инициализации.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
struct C
{
    C( int i ) { this->i = i; }
    C( ) : C(42) {}
    int i;
};
 
int main() {
    
    C c1;
    std::cout << c1.i << std::endl; // 42
    
    C c2(100500);
    std::cout << c2.i << std::endl; // 100500
 
    return 0;
}
http://ideone.com/W77UoU
Хотя в данном случае проще воспользоваться параметрами по умолчанию.
Yandex
Объявления
30.07.2014, 23:51     Как вызвать конструктор с параметрами в конструкторе без параметров?
Ответ Создать тему
Опции темы

Текущее время: 00:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru