Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

           Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
           И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - https://clck.ru/fCqwP

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2008, 13:47   #1
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,616
По умолчанию массив объектов с конструктором копии

Здравствуйте. возникла следующая проблемка. имеется класс А:
Код:
class A
{
...
public:
  A(int i);
...
}
имеется класс B:
Код:
class B:
{
  ...
  A items[10];
  ...
}
так вот как указать что для этих 10 объектов нужно вызвать конструктор копии с параметром 5 например.
если был бы отдельный объект, то вроде как просто реализация конструктора В была бы:
Код:
B(): item(5)
{

}
а вот с массивом как быть?
pu4koff вне форума Ответить с цитированием
Старый 18.06.2008, 13:57   #2
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Когда надо сконструировать множество объектов (не важно, статически или динамически), то всегда вызывается конструктор по умолчанию (без параметров). Об этом говорится в стандарте.
Поэтому придется инициализировать объекты после конструирования. Или же использовать глобальную переменную, но это не есть хорошо.
filosof_x86 вне форума Ответить с цитированием
Старый 18.06.2008, 14:07   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,616
По умолчанию

спасибо. класс А просто не мною разработан и у него отсутствует конструктор по умолчанию
pu4koff вне форума Ответить с цитированием
Старый 18.06.2008, 14:10   #4
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Если он не определен явно, значит компилятор создаст свой, пустой. Инициализацию после проведи и все.
filosof_x86 вне форума Ответить с цитированием
Старый 18.06.2008, 14:29   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,616
По умолчанию

а низя никак. А - это QSemaphore из Qt. и там вроде низя никак кроме конструктора указать максимальное кол-во "посетителей". или лыжи не едут как всегда
pu4koff вне форума Ответить с цитированием
Старый 18.06.2008, 15:39   #6
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Можно определить еще один класс, производный от QSemaphore. В этом новом классе определить конструктор по умолчанию, который в конструктор QSemaphore будет передавать нужно число. Примерно, как это будет выглядеть:

Код:
#include <iostream>

class Semaphore { // по сути, это QSemaphore
public:
  Semaphore(int maxcount)
  {
    std::cout << "Semaphore constructor, maxcount = " << maxcount << std::endl;
  }
  virtual ~Semaphore() {}

private:
  Semaphore() {} // сделаем запрет на использование конструктора по умолчанию
};

class MySemaphore: public Semaphore {
public:
  MySemaphore(): Semaphore(5)
  {
    std::cout << "MySemaphore constructor" << std::endl;
  }
  virtual ~MySemaphore() {}
};

class B {
private:
  MySemaphore items[10];
};

int main()    
{  
  B b;
  return 0;  
}
filosof_x86 вне форума Ответить с цитированием
Старый 18.06.2008, 17:33   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,616
По умолчанию

спасибо. посмотрим. может просто создам массив указателей и в конструкторе уласса B в цикле создам уже нужные объекты
pu4koff вне форума Ответить с цитированием
Ответ

           Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
           Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Много объектов. Манжосов Денис :) Общие вопросы Delphi 5 04.09.2008 22:34
Как в Adobe Reader 8 отключить сохранение копии? Mikalai Софт 0 14.03.2008 14:48
Прикрепление объектов фЁдОр Помощь студентам 20 10.09.2007 10:48
Мерцание объектов Chaos-Delta Мультимедиа в Delphi 4 02.07.2007 13:59
Конструктор объектов Yoger Общие вопросы Delphi 10 20.04.2007 12:45