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

Метод класса возвращает template type - C++

Восстановить пароль Регистрация
 
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
05.05.2013, 20:48     Метод класса возвращает template type #1
надо создать метод который возвращает значение privat переменных разных типов.

например я прикинул простинькую програмку:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class A{
int a;
string b;
public: A(){a=11;b="asd";};  
template<class aType> aType GetPrivat(int c){
if(c==0) return a; if(c==1)return b;};
};  
                            
main(){
A obj;
cout<<obj.GetPrivat(0);
getch();
}
конешно не скомпилировало: no matching function for call to `A::GetPrivat(int)'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
05.05.2013, 20:57     Метод класса возвращает template type #2
перегрузите какнить
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
05.05.2013, 21:03  [ТС]     Метод класса возвращает template type #3
знать бы как
Саня gamer
96 / 70 / 1
Регистрация: 18.05.2011
Сообщений: 343
Записей в блоге: 1
05.05.2013, 21:10     Метод класса возвращает template type #4
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
class A
{
 
    int a;
    string b;
public:
    A()
    {
        a=11;
        b="asd";
    }
    int GetPrivat(int c)
    {
        if(c==0) return a;
    }
    string GetPrivat (double c)
    {
       if(c==1)return b;
    }
};
 
main()
{
    A obj;
    cout<<obj.GetPrivat((double)1);
    cin.get();
}
xJokerUA
 Аватар для xJokerUA
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 6
05.05.2013, 21:28  [ТС]     Метод класса возвращает template type #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
 
template <class T>
 
T GetMax (T a, T b) {
  T result;
  result = (a>b)? a : b;
 
  return (result);
}
 
int main () {
  int i=5, j=6, k;
  long l=10, m=5, n;
 
  k = GetMax< int >(i,j);
  n = GetMax< long >(l,m);
 
  cout << k << endl;
  cout << n << endl;
 
  return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <conio> 
using namespace std; 
 
template <class aType> aType myAbs(aType n)
{
return n < 0 ? -n : n;
}
int main()
{
cout << myAbs(-10) << endl; 
cout << myAbs(-10.0) << endl; 
cout << myAbs(-10L) << endl; 
cout << myAbs(-10.0F) << endl; 
getch(); return 0;
}
нашел такие простенькие примеры. они работают без переопределения функий специально для каждого типа. пишет в книжке что шаблонная функия может определяться самостоятельно.
Yandex
Объявления
05.05.2013, 21:28     Метод класса возвращает template type
Ответ Создать тему
Опции темы

Текущее время: 09:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru