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

Повторное использование кода в C++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ немогу всавить ассемблер в код http://www.cyberforum.ru/cpp-beginners/thread831470.html
пишу такой код: #include <iostream> int main(){ int a = 1; int b = 2; asm("mov eax, ebx"); return 0; }
C++ Функция гиперболического тангенса tanh(x) Всем добрый день! Если взять два числа A и B и сложить их, то процессор проделает одну операцию сложения,так? А сколько операций и каких проделает процессор, если я хочу взять гиперболический... http://www.cyberforum.ru/cpp-beginners/thread831467.html
в калькуляторе 2+2*2=8 C++
не получается сделать так, чтобы калькулятор считал 2+2*2=8, как это реализовать? Есть мнение что нужно что-то дописать в "+", но что... код: // primer1Dlg.cpp : файл реализации // ...
Работа с массивами (удаление строк, столбцов) C++
12.235 Дан двумерный массив. а) удалить из него первую из строк, сумма элементов которых не превышает некоторое заданное число. б) удалить из него первый из столбцов, количество нулей в котором...
C++ Функция getchar! http://www.cyberforum.ru/cpp-beginners/thread831448.html
Здравствуйте, поясните на пальцах, что делает данная программа? #include <stdio.h> int main(void) { char ch; printf("Enter a character followed by <Enter>: "); ch = getchar(); ...
C++ Перечислить все последовательности из n нулей, единиц и двоек, в которых никакая группа цифр не повторяется два раза подряд (нет куска вида XX ) Перечислить все последовательности из n нулей, единиц и двоек, в которых никакая группа цифр не повторяется два раза подряд (нет куска вида XX ). Помогите написать программу, пожалуйста) Я в этом... подробнее

Показать сообщение отдельно
anakonda3247gm
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 2

Повторное использование кода в C++ - C++

08.04.2013, 14:30. Просмотров 1155. Ответов 5
Метки (Все метки)

Всем доброго дня! Прошу помочь начинающему. В данный момент обучаюсь по книге Прата С.. Застрял на задаче про использование класса valarray. Прошу помочь разобраться в создании конструкторов.

Имеется:
Класс Wine (Вино) содержит объект-член типа string для названия вина и объект Pair из объектов valarray<int>. Первый член каждого объекта Pair содержит год сбора винограда, а второй член — количества бутылок с вином урожая этих лет. Например, первый объект valarray объекта Pair содержит годы 1988, 1992 и 1996, а второй объект valarray — количества бутылок: 24, 48 и 144.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <class T1, class T2>
class Pair
{
private:
    T1 a;
    T2 b;
public:
    T1 & first();
    T2 & second();
    T1 first() const { return a; }
    T2 second() const { return b; }
    Pair(const T1 & aval, const T2 & bval) : a(aval), b(bval) { }
    Pair() {}
};
Для упрощения кода могут быть полезными следующие объявления typedef:
C++
1
2
typedef std::valarray<int> Arraylnt; 
typedef Pair<ArrayInt, Arraylnt> PairArray;
Класс Wine должен иметь конструктор по умолчанию и, как минимум, следующие
конструкторы:

C++
1
2
3
4
5
// Инициализация label значением l, количество лет - у,  годы урожая - уг[], количество бутылок - bot [ ] 
Wine (const char * l, int у, const int yr[], const int bot[]); 
 
// Инициализация label значением 1, количество лет - у, создаются объекты массива размером у 
Wine (const char * l, int у);
Так же класс Wine должен иметь некоторые методы:
GetBottles(); - предлагает ввод соотв. значений для года урожая и количества бутылок.
Show(); -
Label(); - возвр. ссылку на название вина.
sum (); - возвр. общее количество бутылок во втором бъекте valarray<int> из объекта Pair.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Wine
{
    string name;
    PairArray p;
public:
    Wine();
    Wine (const char * l, int у, const int yr[], const int bot[]); 
    Wine (const char * l, int у); 
 
    GetBottles();
    Show();
    Label();
    sum ();
}
Программа должна предлагать пользователю ввести название вина, количество элементов в массиве, а также год и количество бутылок для каждого элемента массива. Программа должна использовать эти данные для создания объекта Wine и вывода информации, хранимой в объекте.

Так же приведен пример тестовой программы и вывод на экран.

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
int main ( void ) 
{ 
    using std::cin;
    using std::cout;
    using std::endl;
 
    cout << "Enter name of wine: "; // ввод названия вина 
    char lab[50];
    cin.getline(lab, 50);
 
    cout << "Enter number of years: "; // ввод количества годов сбора винограда 
    int yrs; 
    cin >> yrs;
 
    Wine holding(lab, yrs); // сохранение названия, лет, 
    // создание массивов из yrs элементов 
 
    holding.GetBottles (); // предложение ввести год и количество бутылок 
    holding.Show (); // вывод содержимого объекта 
 
    const int YRS = 3; 
    int y[YRS] = {1993, 1995, 1998}; 
    int b[YRS] = { 48, 60, 72}; 
 
    // Создание нового объекта, инициализация 
    // с использованием данных из массивов у и b 
    Wine more("Gushing Grape Red",YRS, y, b) ; 
    more.Show(); 
 
    cout << "Total bottles for " << more.Label() // используется метод Label() 
         << ": " << more, sum () << endl; // используется метод sum() 
    cout << "Bye\n"; 
    return 0; 
}
А так может выглядеть вывод программы:

Enter name of wine: Gully Wash
Enter number of years: 4
Enter Gully Wash data for 4 year(s) :
Enter year: 1988
Enter bottles for that year: 42
Enter year: 1994
Enter bottles for that year: 58
Enter year: 1998
Enter bottles for that year: 122
Enter year: 2001
Enter bottles for that year: 144
Wine: Gully Wash
Year Bottles
1988 42
1994 58
1998 122
2001 144
Wine: Gushing Grape Red
Year Bottles
1993 48
1995 60
1998 72
Total bottles for Gushing Grape Red: 180
Bye
2.

Очень прошу объяснить, как создать конструкторы класса Wine на основе шаблона Pair и valarray.
Подозреваю, что туплю "не по-детски", но банально застрял. Надеюсь на довольно вразумительный "пинок" с вашей стороны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru