5 / 5 / 4
Регистрация: 18.11.2014
Сообщений: 81
1

Конструктор при создании через []

29.03.2015, 19:56. Показов 471. Ответов 4
Метки нет (Все метки)

Как написать конструктор для класса при создании таким видом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Array
{
private:
    int size;
    int* arr;
public:
    ....
};
int main()
{
    Array a[10];//если создавать Array a(10); то знаю, а как именно с этими скобками.
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 19:56
Ответы с готовыми решениями:

Ругается new при создании динамического массива через перегруженный конструктор
Перегрузил конструктор: class Library { public: Library(void) //конструктор библиотеки...

Передача параметров в конструктор при создании динамического массива
Добрый день! Есть довольно тривиальный класс: class Array1d{ int* ptr_; public: ...

При создании класса конструктор вызывается 2 раза, затем вызывается деструктор о_О
Вот такой кодclass A { public: A(){} virtual ~A(){} }; class C { public:

Проблемой при создании массива через переменную
На C++ столкнулся с проблемой при создании массива через переменную. Таким образом: int list; ...

4
7100 / 6095 / 2780
Регистрация: 14.04.2014
Сообщений: 26,229
29.03.2015, 19:59 2
Скобки [] указывают, что a - массив. Конструктор по умолчанию сделай.
1
5 / 5 / 4
Регистрация: 18.11.2014
Сообщений: 81
29.03.2015, 20:06  [ТС] 3
nmcf, ага понял. а могу ли я переписать это? что бы не создавался массив, а переходило в функцию а дальше я разберусь, что делать? (спасибо)
0
:)
Эксперт С++
4769 / 3263 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
29.03.2015, 20:38 4
Fasterbru, если создаешь класс своего массива с блекджеком, то добавь соответствующий конструктор. Например:
C++
1
public: explicit Array(int size) : size(size), arr(new int[size]) {}
Если же ты хочешь создавать массивы из своих типов Array, а именно это происходит при вызове:
C++
1
Array a[10];
то нужно добавить в класс конструктор по умолчанию (без параметров или со всеми параметрами по умолчанию).
Чтобы убить сразу двух зайцев можно модифицировать упомянутый ранее конструктор так:
C++
1
public: explicit Array(int size = 10) : size(size), arr(new int[size]) {}

Не по теме:

P.S. explicit используется для запрета неявных преобразований типа int (тип аргумента size) в тип Array.

1
7100 / 6095 / 2780
Регистрация: 14.04.2014
Сообщений: 26,229
29.03.2015, 21:19 5
Инициализировать класс квадратными скобками не получится, насколько я знаю. Можно перегрузить скобки для доступа к элементам.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 21:19

Использование переменной в качестве аргумента при создании файла через ofstream
Рассмотрите пожалуйста следующий код, он работает: /*! Тут насколько я понимаю, мы разбираемся с...

this(Всегда ли вызывается конструктор при не явной передачи объекта в конструктор)
class Test { int i; public: void test(int i) { this -> i = i; } }; Конструктор...

Почему при создании динамического массива через new ячейки массива имеют значение -842150451?
Я хотел бы узнать почему при создании динамического массива через операцию new ячейки массива имеют...

Не могу передать параметр в родительский конструктор при создании экземпляра класса
Хочу создать экземпляр класса Human, и передать в конструктор его родительского класса параметр...


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

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

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