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

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

Войти
Регистрация
Восстановить пароль
 
DrHlus
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 11
#1

Нужен совет, как правильно написать клас - C++

05.12.2012, 12:10. Просмотров 653. Ответов 3
Метки нет (Все метки)

Всем привет!
Уже пару дней бьюсь не могу написать такую вещь.
Мне нужен клас. Его конструктор по умолчанию запривачен (объект этого класа без проделаной определенной работы бессмыслен), а вот написать обычный не знаю как.
Он должен принимать один параметр типа enum, несколько параметров float и еще один int, но будет, как правило, использоваться его значение по умолчанию.
Проблема в том, что количество параметров float зависит от значения параметра типа enum, поэтому там самый универсальный вариант - указать итераторы на контейнер, но вот как это сделать по-человечески, я без понятия.
Вот приблизительный код этого всего хлама
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
enum HillFunctionType
{
    exponential,
    universal
};
 
class HillFunctionData: public vector<float>
{
    private:
    HillFunctionData(){;}
 
    public:
    
    vector<float> params;
        HillFunctionData(HillFunctionType funcType, ForwardIterator itBegin, ForwardIterator itEnd, const unsigned int points = PointsInHillFunction); // вот этот конструктор
};
Что подскажете?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 12:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужен совет, как правильно написать клас (C++):

Нужен совет. Как правильно исправит код ? - C++
#include&lt;iostream&gt; using namespace std; int main() { int count; cin &gt;&gt; count; for (int counter = 0; counter &lt; count;...

Знаю С, написать ничего толкового не могу, нужен совет опытных - C++
Всем привет! года так 1.5 назад начал учить язык С/С++, итог тому, выучил С, в принципе знаю 80% языка, но проблема вот в чем, я не могу...

Нужен совет а то не знаю как начать - C++
Здравствуйте уважаемые программеры хотелось бы узнать какие книги изучить чтобы хорошо программировать на c++. Мне советовали типа...

Нужен совет - как сделать circular linked list? - C++
Доброго всем времени суток!!! У меня программа которая считает queue, мне необходимо сделать circular linked list. Прошу помоши!!!!!...

клас Letter, клас Person - C++
Створити клас Letter, що мiстить наступнi елементи: - поле «вiдправник» Person*Sender; - поле «одержувач» Person*Receiver; - поле...

Нужен совет: как лучше всего сгенерировать документ .doc с оформлением по ГОСТу - C++
Хай. Надо написать программу которая будет оформлять текст так сказать по госту(шрифт, размер интервал), была возможность вставлять туда...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
05.12.2012, 12:49 #2
в с++11 есть std::initializer_list

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <initializer_list>
 
enum EType {one, two};
 
class Base
{
public:
    Base(EType const eval, std::initializer_list<float> const ilist, unsigned const un = 4)
    {
        for(auto const& val : ilist)
        {
            std::cout << val << std::endl;
        }
    }
};
int main()
{
    Base b(EType::one, {3.22, 6, 7}), b1(EType::two, {3.34}, 77);
    return 0;
}
0
0x10
2464 / 1636 / 238
Регистрация: 24.11.2012
Сообщений: 4,031
05.12.2012, 13:12 #3
Если точно известно какие параметры нужны, можно написать несколько перегруженных конструкторов с разными сигнатурами. А вообще, как мне кажется, стоит ответить на вопрос: это один объект может быть сконструирован разными способами (и тогда вариант с перегрузкой допустим) или же в от параметров при конструировании будет зависеть дальнейшее его поведение (тогда логично было бы организовать иерархию классов).
0
DrHlus
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 11
05.12.2012, 14:48  [ТС] #4
Большое спасибо, буду использовать initializer_list.
Еще только подскажите, как у вас тут принято "закрівать" темы?

 Комментарий модератора 
Цитата Сообщение от DrHlus Посмотреть сообщение
Еще только подскажите, как у вас тут принято "закрівать" темы?
Никак. Тема закрывается только в том случае, если она нарушает правила. В противном случае она останется открытой, вопрос может быть поднят снова (даже не обязательно вами) через некоторое время.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2012, 14:48
Привет! Вот еще темы с ответами:

Как создать клас Fraction - C++
класс фракшион

как использовать клас в классе? - C++
Здравствуйте. Мне нужно, чтобы клас А использовад клас Б и наоборот. Упрощенный код: #ifndef... #include &quot;A.h&quot; class B { ...

Как правильно написать??? - C++
Как правильно написать ? дана часть кода: #include &amp;quot;stdafx.h&amp;quot; main() {stract znak{char fam char...

Как правильно написать в С++ - C++
Как правильно написать в С++ N=arctg(sin^2*x+tg^2*y) y=sin^2*(a-b)^3 ^- степень


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.12.2012, 14:48
Ответ Создать тему
Опции темы

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