2 / 2 / 1
Регистрация: 29.01.2013
Сообщений: 47
1

Шаблоны

26.07.2013, 16:40. Показов 512. Ответов 3
Метки нет (Все метки)

Есть два класса:
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
35
36
#include <iostream>
#include <string>   
#include <valarray>
using namespace std;
template <class T1, class T2>
class Pair
{
private:
    T1 a;
    T2 b;
public:
    Pair(const T1 & aval, const T2 & bval);
    //Pair(int n);
    void SetPair(int n);
    Pair() {}
    void Show();
    int Sum();
    ~Pair() {}
};
class Wine
{
private:
    typedef std::valarray<int> ArrayInt;
    typedef Pair<ArrayInt, ArrayInt> PairArray;
    std::string label;
    int years;
    PairArray Pairr;
public:
    void GetBottles();
    int Sum();
    string & Label();
    void Show();
    Wine(const char * l, int y, const int yr[],const int bot[]);
    Wine(const char * l, int y);
    ~Wine () {}
};
Правильный ли вызов метода шаблонного класса?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
template <class T1, class T2>
void Pair<T1,T2>::SetPair(int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<"Enter year: "<<a[i]<<endl;
        cout<<"Enter bottles for that year: "<<b[i]<<endl;
    }
}
 
template <class T1, class T2>
void Wine::GetBottles()
{
    cout<<"Enter name of wine: "<<endl;
    getline(cin,label);
    cout<<"Enter number of years: "<<years<<endl;
    cin>>years;
    cin.get();
    cout<<"Enter "<<label<<" data for "<<years<<"year(s):\n";
    Pair<ArrayInt, ArrayInt>::SetPair(years);
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2013, 16:40
Ответы с готовыми решениями:

«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами».
«Шаблоны шаблонов» vs «шаблоны с параметрами-шаблонами». Есть ли разница в этих понятиях? Если...

Шаблоны. Плохо понимаемые моменты из книги "Шаблоны С++. Справочник разработчика". (Вандевурд, Джосаттис)
Так как изучаю эту книгу, то в некоторых местах возникают вопросы. Чтобы не плодить много тем,...

Помогите писать на С++ через шаблоны. Консуле я писал, но надо писать исползуя шаблоны
В одномерном массиве, состоящем из п вещественных элементов, вычислить: 1) количество элементов...

Шаблоны
Добрый день. Не могли бы объяснить вот этот вопрос: Допускают ли шаблоны вложенность описания?

3
Don't worry, be happy
17213 / 10089 / 1948
Регистрация: 27.09.2012
Сообщений: 25,185
Записей в блоге: 1
26.07.2013, 16:42 2
Сначала создайте объект класса, а потом уже вызывайте методы.
C++
1
Pair<ArrayInt, ArrayInt>::SetPair(years);
SetPair - не статическая функция
0
2 / 2 / 1
Регистрация: 29.01.2013
Сообщений: 47
26.07.2013, 16:50  [ТС] 3
Croessmah, виноват, имел ввиду использовать
т.е. вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <class T1, class T2>
class Pair
{
private:
    T1 a;
    T2 b;
public:
    Pair(const T1 & aval, const T2 & bval);
    //Pair(int n);
    static void SetPair(int n);
    Pair() {}
    void Show();
    int Sum();
    ~Pair() {}
};
0
Don't worry, be happy
17213 / 10089 / 1948
Регистрация: 27.09.2012
Сообщений: 25,185
Записей в блоге: 1
26.07.2013, 16:52 4
При таком подходе SetPair не будет иметь доступа к не статическим полям класса без объекта.
Не понятно что Вам нужно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.07.2013, 16:52

шаблоны
помогите с задачей пожалуйста нужно описать шаблон класса для хранения последовательности пар ключ...

Шаблоны
ругается на строку &quot;friend class List&lt;T&gt;;&quot;, вот что пишет: 1&gt;c:\users\slava\documents\visual...

шаблоны в си++
кто может сказать где прблема? List.h #ifndef LIST_H #define LIST_H #include&lt;iostream&gt;...

Шаблоны
Здравствуйте не объясните новичку пару аспектов про шаблоны 1)Зачем они нужны 2)Преимущества...


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

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

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