powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в С++ создать массив объектов у которых нет конструктора без параметров
14 сообщений из 14, страница 1 из 1
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777618
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в С++ создать массив объектов у которых нет конструктора без параметров?
Спасибо за ответ
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777692
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KКак в С++ создать массив объектов у которых нет конструктора без параметров?
Спасибо за ответ

Попробуй так:
Код: plaintext
1.
Sockets s[ 2 ]={Sockets( 1 ), Sockets( 2 )};

По крайней мере компилится...
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777759
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да так работает :)
а динамически с помощью new никак нельзя, получается, создать?
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777830
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KДа так работает :)
а динамически с помощью new никак нельзя, получается, создать?

Ну так это еще проще. Создаешь как обычно, а пихаешь в элемент массива:

Код: plaintext
1.
2.
3.
4.
5.
Sockets *s[ 2 ];

...

s[ 0 ]=new Sockets( 1 );
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777867
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Sandro_KДа так работает :)
а динамически с помощью new никак нельзя, получается, создать?

Ну так это еще проще. Создаешь как обычно, а пихаешь в элемент массива:

Код: plaintext
1.
2.
3.
4.
5.
Sockets *s[ 2 ];

...

s[ 0 ]=new Sockets( 1 );


Это уже будет массив указателей на объекты, а динамический массив самих объектов получается, что сделать навозможно?
я впринципе уже сделал через указатели, но просто интересно узнать :)
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777909
a_shar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
vector <Sockets*> vs;
for (int i =  0 ; i <  10 ; ++i ) {
    Sockets* sock = new Sockets( 1 );
    vs.push_back(sock);
}
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777921
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K
Это уже будет массив указателей на объекты, а динамический массив самих объектов получается, что сделать навозможно?
я впринципе уже сделал через указатели, но просто интересно узнать :)

Попробуй так:

Код: plaintext
1.
2.
3.
	Sockets *s;
	s=(Sockets *)malloc(sizeof(Sockets)* 3 );
	s[ 0 ]=Sockets( 1 );

Тоже компилится :)
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777935
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_shar
Код: plaintext
1.
2.
3.
4.
5.
vector <Sockets*> vs;
for (int i =  0 ; i <  10 ; ++i ) {
    Sockets* sock = new Sockets( 1 );
    vs.push_back(sock);
}


Кстати, тут недавно list осмыслил . Вытягивал по всему инету инфу, пока не добился. И как заметил, чаще используют vectror. Интересно было бы узнать, в чем их различие.
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777991
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh
Попробуй так:

Код: plaintext
1.
2.
3.
	Sockets *s;
	s=(Sockets *)malloc(sizeof(Sockets)* 3 );
	s[ 0 ]=Sockets( 1 );

Тоже компилится :)

интересное решение :) , тоже работает.
хотя тут может возникнуть одна проблема: при освобождении памяти надо будет вызывать не delete[], а free(). А free() сама деструкторы у объектов не вызывает, поэтому если у объектов есть деструкторы, их надо будет вызвать вручную.
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33777995
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_shar
Код: plaintext
1.
2.
3.
4.
5.
vector <Sockets*> vs;
for (int i =  0 ; i <  10 ; ++i ) {
    Sockets* sock = new Sockets( 1 );
    vs.push_back(sock);
}

тут тоже вектор указателей на объекты :)
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33778016
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K Akh
Попробуй так:

Код: plaintext
1.
2.
3.
	Sockets *s;
	s=(Sockets *)malloc(sizeof(Sockets)* 3 );
	s[ 0 ]=Sockets( 1 );

Тоже компилится :)

интересное решение :) , тоже работает.
хотя тут может возникнуть одна проблема: при освобождении памяти надо будет вызывать не delete[], а free(). А free() сама деструкторы у объектов не вызывает, поэтому если у объектов есть деструкторы, их надо будет вызвать вручную.

Логично. Как мы инициализируем, так мы должны и деинициализировать. 2 операции в начале, 2 операции в конце.
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33778017
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh a_shar
Код: plaintext
1.
2.
3.
4.
5.
vector <Sockets*> vs;
for (int i =  0 ; i <  10 ; ++i ) {
    Sockets* sock = new Sockets( 1 );
    vs.push_back(sock);
}


Кстати, тут недавно list осмыслил . Вытягивал по всему инету инфу, пока не добился. И как заметил, чаще используют vectror. Интересно было бы узнать, в чем их различие.

В векторе все элементы хранятся в памяти последовательно, поэтому в векторе доступ к произвольному элементу работает намного быстрее чем в списке, а в списке намного быстрее работает удаление и добавление элементов в произвольную позицию
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33778020
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KВ векторе все элементы хранятся в памяти последовательно, поэтому в векторе доступ к произвольному элементу работает намного быстрее чем в списке, а в списке намного быстрее работает удаление и добавление элементов в произвольную позицию

Большой фенкс.
...
Рейтинг: 0 / 0
Как в С++ создать массив объектов у которых нет конструктора без параметров
    #33778048
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh Sandro_KВ векторе все элементы хранятся в памяти последовательно, поэтому в векторе доступ к произвольному элементу работает намного быстрее чем в списке, а в списке намного быстрее работает удаление и добавление элементов в произвольную позицию

Большой фенкс.

вот тут про это подробно расписано http://valera.asf.ru/cpp/book/c06.shtml
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как в С++ создать массив объектов у которых нет конструктора без параметров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]