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

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

Войти
Регистрация
Восстановить пароль
 
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
#1

Как переопределить конструктор класса - C++

11.11.2012, 00:59. Просмотров 584. Ответов 4
Метки нет (Все метки)

Здравствуйте. У меня есть пример такого кода:
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
34
35
36
37
38
39
40
41
42
43
#include <cstdio>
 
template <int n> class B {
public:
    int size;
    int a[n];
 
    B() : size(n) {
        printf( "B::B()\n" );
        for ( int i = 0; i < size; i++ ) {
            a[i] = i;
        }
    }
 
    void test() {
        printf( "B::test()\n" );
    }
};
 
template <class T = B<5> > class A {
public:
    T   t;
 
    A() {
        printf( "A::A()\n" );
    }
 
    void test() {
        printf( "A::test()\n" );
        for ( int i = 0; i < t.size; i++ ) {
            printf( "%d\n", t.a[i] );
        }
    }
};
 
int main()
{
    A < B<10> > a;
    A <>        a2;
    a.test();
    a2.test();
    return 0;
}
Никак не соображу, можно ли как-то переопределить конструктор класса B, к примеру, в такой вид: B( int x, int y ) и как-то передать в него параметры в том виде как он описан в коде ?

Не по теме:

Куда делся CUT ?

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2012, 00:59     Как переопределить конструктор класса
Посмотрите здесь:

Как переопределить дружественную функцию ввода для класса наследника - C++
Есть класс предок, который имеет такую вот дружественную функцию ввода: friend ifstream &amp; operator &gt;&gt;(ifstream &amp; inf, Tovar &amp; obj) ...

Как создать конструктор класса? - C++
Надо создать класс с конструктором сеттером и геттером. Я решил что конструктор будет делать пустые поля. Сеттер переписывать потом из...

Как правильно вызывать конструктор шаблонного класса? - C++
Как правильно вызывать конструктор класса? template &lt;class T&gt; class A{ T *v; int dim; public: A(T *a,int n); }; ...

Как использовать явный конструктор родительского класса? - C++
Привет :) Вот код, строчка 43. Как использовать конструктор типа A(int), в классе C? Компилятор выдаёт ошибку (Error:...

Как инициализирует поля класса заданный конструктор? - C++
Здравствуйте Дорогие Форумчане. 1) Как инициализирует переменную этот вызов? Queue line(qs); с таким конструктором. ...

Как реализовать обнуляющий конструктор в модуле класса? - C++
Нужно реализовать класс в виде модуля. Класс Houses, содержит данные о домах, расположенных на одной улице. Кол-во жителей(tenants) и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
11.11.2012, 01:34     Как переопределить конструктор класса #2
Эээ, что-то я вас не понял. Где именно переопределить? Внутри конструктора A что ли?

Не по теме:

Они убили CUT. Теперь придётся выкладывать простынки кода полностью.

castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
11.11.2012, 01:48  [ТС]     Как переопределить конструктор класса #3
Мм.. не знаю как лучше объяснить...
Допустим, если написать: A < B<10> > a;, тогда вызовется конструктор B() { ... }.
Если я опишу конструктор B как B( int a ) { ... }, то как я смогу передать в него этот параметр а данной ситуации?
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
11.11.2012, 01:52     Как переопределить конструктор класса #4
В списке инициализации же:
C++
1
2
3
4
5
6
7
8
9
template <class T = B<5> > class A {
public:
    T   t;
 
    A() : t(параметры) {
        printf( "A::A()\n" );
    }
 
    /* ... */
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 01:58     Как переопределить конструктор класса
Еще ссылки по теме:

Создать конструктор для массива, как члена класса - C++
Добрый день! Если одним из членов класса, является массив, какой конструктор может для него использоваться, как он выглядит?

Как написать конструктор для класса, в котором содержится структура? - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; using namespace std; const int a = 50; struct Spec { char...

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

Унаследоваться от базового класса и переопределить часть его данных - C++
Есть базовый класс с некоторыми (protected) данными, в том числе объявленными const, и (public) виртуальными функциями. Требуется...

Как передавать значения строкового типа в конструктор через объект класса? - C++
Как передавать значения строкового типа в конструктор через объект класса? Или просто, как передавать знач строкового типа в конструктор? ...

Как задать размер массива, который является членом класса, через конструктор? - C++
Почему так? И как же тогда задать размер этого массива? class Test { public: Test(int size) : arrSize(size){}; private: ...


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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
11.11.2012, 01:58  [ТС]     Как переопределить конструктор класса #5
Премного благодарен.
Yandex
Объявления
11.11.2012, 01:58     Как переопределить конструктор класса
Ответ Создать тему
Опции темы

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