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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
#1

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

30.07.2014, 23:17. Просмотров 735. Ответов 4
Метки нет (Все метки)

Как вызвать конструктор с параметрами в конструкторе без параметров? То есть что бы конструктор с параметрами выступал в роли основного. В одном классе, пример:

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)
 {}
}
Конструктор как бы вызывается, но переменная хранит или мусор или адрес...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 23:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вызвать конструктор с параметрами в конструкторе без параметров? (C++):

Конструктор без параметров - C++
class stack { private: int top; // вершина стека int s; // массив в котором хранится стек public: stack (): top(0)...

Не работает конструктор без параметров - C++
1) Не работает конструктор без параметров. 2) Как должен выглядеть деструктор для классов Server и Client? 3) Как правильно вынести...

Конструктор без параметров: не выводится строка в приведенном коде - C++
#include "stdafx.h" #include "conio.h" #include <iostream> using namespace::std; class String { protected: enum { SZ = 80 };...

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно» - C++
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по умолчанию, конструктор с параметрами....

как вызвать конструктор? - C++
class t_figure { protected: int m_hor; // цифра по горизонтали char m_vert; // буква по вертикали int m_color; // цвет... ...

Как сделать конструктор и деструктор с параметрами? - C++
как сделать конструктор и деструктор с параметрами?:-| #include "stdafx.h" #include <iostream> using namespace std; class...

4
Jewbacabra
Эксперт PHP
2702 / 2290 / 854
Регистрация: 24.04.2014
Сообщений: 6,881
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) {}
}
0
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
30.07.2014, 23:38  [ТС] #3
Вопрос не прочитал или не понял.
К примеру:
C++
1
Test *t = new Test();
И что бы тут конструктор по умолчанию инициализировался конструктором с 1 параметром по типу Test(0);. Как его вызвать к конструкторе без параметров?
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 параметром
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
Хотя в данном случае проще воспользоваться параметрами по умолчанию.
2
30.07.2014, 23:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2014, 23:51
Привет! Вот еще темы с ответами:

Как избежать повтора параметров конструктора класса-родителя в конструкторе наследника? - C++
С каждым новым наследуемом классом, число параметров конструктора увеличивается. class A { public: A(int a, float b, double c) ...

Как вызвать нужный конструктор - C++
Пожалуйста, подскажите, как вызвать нужный конструктор в зависимости от того, какие поля заполняет пользователь и какие пропускает? ...

Как вызвать конструктор по указателю? - C++
TBase *Buffer; TBase *p; TBase *End; size_t NewSize; NewSize=Count*sizeof(TBase); if ((NewSize/sizeof(TBase))==Count) ...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.