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

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

Войти
Регистрация
Восстановить пароль
 
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

можно ли сделать шаблон? - C++

23.08.2013, 23:05. Просмотров 447. Ответов 11
Метки нет (Все метки)

есть две функции A(){} и B(){}, использующие в себе третью C(){}. Эта третья содержит в себе
C++
1
if (a<b) {...}
вот в A нужно иметь a<b, а вот в B a<=b?
Вопрос : можно ли сделать С шаблоном и как?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 23:05     можно ли сделать шаблон?
Посмотрите здесь:

без знаковый double. Если ли чтоб можно было в шаблон пихать или самому сделать придется ? - C++
сабжж

Сделать шаблон - C++
Здравствуйте имееться вот такая задача: #include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; class Node { public: ...

Шаблоны функций. Можно ли задать шаблон мэйна - C++
Понятно что нельзя. В этом чудном участке кода, в мэйн вводимые данные кастятся к инту. Как это можно обойти?#include&lt;iostream&gt; using...

Можно ли объявить дружественную функцию как шаблон? - C++
Так всё работает: template&lt;class T&gt; class random { /*всячина*/ public: friend void function(random&lt;int&gt;&amp;); ...

Сделать свой шаблон вектора - C++
надо сделать шаблон вектора,посмотрите то что сделал это правильно? и еще вопрос,можете помочь сделать итератор,а то что то вообще не...

Как правильно сделать шаблон класса complex - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using std::cout; using std::cin; using std::endl; namespace Algebra ...

Пишем исключения для каждого типа данных, или можно использовать шаблон? - C++
Всем доброго дня. В классе &quot;очередь&quot; я использую шаблон класса и если пользователь захочет допустим ввести не тип int а тип double то мне...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kamre
126 / 130 / 4
Регистрация: 25.12.2011
Сообщений: 443
23.08.2013, 23:21     можно ли сделать шаблон? #2
Цитата Сообщение от soican Посмотреть сообщение
можно ли сделать С шаблоном и как?
А зачем, если можно просто передавать флаг в функцию C?
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
23.08.2013, 23:23  [ТС]     можно ли сделать шаблон? #3
Цитата Сообщение от kamre Посмотреть сообщение
передавать флаг в функцию C
что за флаг? это как? типа bool какой нибудь, а в самой ф-ции if () { два варианта < или <=}?
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.08.2013, 23:23     можно ли сделать шаблон? #4
soican, причем тут вообще шаблоны?
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.08.2013, 23:26     можно ли сделать шаблон? #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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
 
template<class T>
class my_traits;
 
class A
{
    friend class my_traits<A>;
private:
    int i;
public:
    A(int i) : i(i) {}
};
 
class B
{
    friend class my_traits<B>;
private:
    int i;
public:
    B(int i) : i(i) {}
};
 
template<>
class my_traits<A>
{
public:
    static bool compare(const A& a, const A& b)
    {
        return a.i < b.i;
    }
};
 
template<>
class my_traits<B>
{
public:
    static bool compare(const B& a, const B& b)
    {
        return a.i <= b.i;
    }
};
 
template<class T, class R = my_traits<T> >
class C
{
public:
    C()
    {
        T a(5), b(5);
        std::cout << std::boolalpha
                  << R::compare(a, b)
                  << std::endl;
    }
};
 
 
int main()
{
    C<A> a;
    C<B> b;
}
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
23.08.2013, 23:30  [ТС]     можно ли сделать шаблон? #6
Цитата Сообщение от Tulosba Посмотреть сообщение
причем тут вообще шаблоны?
ну при том, что вся ф-ция одинакова кроме знака < или <= вот и навевает мысли, чтобы не писать две одинаковые отличающие только знаками ф-ции а как нибудь по красоте раз и передал как нибудь, что вот здесь < а вот здесь <=
Tulosba
23.08.2013, 23:32
  #7

Не по теме:

Jupiter,

Цитата Сообщение от soican Посмотреть сообщение
две функции
не классы.

Jupiter
23.08.2013, 23:34
  #8

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
не классы.
Цитата Сообщение от soican Посмотреть сообщение
A(){} B(){} C(){}
это вообще конструкторы

soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
23.08.2013, 23:37  [ТС]     можно ли сделать шаблон? #9
Jupiter, охохохо вот это жестьянка...подумаю подумаю
A(){} B(){} C(){} - ну это не конструкторы - просто ф-ции, это я так показал, чтоб не просто так были. если это понимается как конструкторы, сори - буду знать
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.08.2013, 23:37     можно ли сделать шаблон? #10
Цитата Сообщение от soican Посмотреть сообщение
ну при том, что вся ф-ция одинакова кроме знака
ну так и сделайте параметр, который будет задавать метод сравнения.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool less( int a, int b )
{
   return a<b;
}
bool lessEqual( int a, int b )
{
   return a<=b;
}
 
void C( int a, int b, bool (*comp)(int,int) )
{
    if( comp(a,b) ) ...
}
Jupiter
23.08.2013, 23:38
  #11

Не по теме:

Цитата Сообщение от soican Посмотреть сообщение
охохохо вот это жестьянка...подумаю подумаю
смотри шоб моск не вытек память не утекла

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 23:47     можно ли сделать шаблон?
Еще ссылки по теме:

Как сделать шаблон функции другом шаблона класса? - C++
С обычной функцией понятно: template&lt;class T&gt; class A { friend void f(); } А вот если функция f шаблонная, то указать ее...

Как сделать один шаблон для разных типов - C++
Предположим я реализую некоторый шаблонный класс, в котором, ну ради примера к объектам шаблонного типа (тип, используемый в заголовке...

Как сделать шаблон на считывание неизвестного типа данных? - C++
Есть размерности двумерного массива. Нужно считать с клавиатуры числа. Они могут быть как int, так и float или double. Как это сделать? ...

Написать шаблон класса очередь, и сделать к типу char спецификацию - C++
по заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон...

Как сделать шаблон, с параметром-классом - потомком определённого класса? - C++
Хочется сделать шаблон с параметром-классом, который обязан реализовывать определённый интерфейс. class IService { public: ...


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

Или воспользуйтесь поиском по форуму:
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
23.08.2013, 23:47  [ТС]     можно ли сделать шаблон? #12
Tulosba, крутяк..ни когда не передовал в ф-ию. аргументом другую ф-цию...

Добавлено через 4 минуты
кароче сохраняю код Jupiter в папке "пособие по жести"
использую в программе идею Tulosba
Yandex
Объявления
23.08.2013, 23:47     можно ли сделать шаблон?
Ответ Создать тему
Опции темы

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