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

template <class T> - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обход Джарвиса (Алгоритм заворачивания подарка) http://www.cyberforum.ru/cpp-beginners/thread312486.html
Не могу придумать как написать прогу. Помогите пожалуйста. Суть такова: Пусть дано множество P = {p1,p2,...pn} точек. В качестве начальной берётся самая левая нижняя точка p1 (ее можно найти за O(n)...
C++ Инклюиды - include Доброго времени суток ! столкнулся с такой проблемой что нахожу какие-то примеры программ в инэте запускаю у себя а оно ругается что нет include каждых ! подскажите может есть какой-то сборник ? ... http://www.cyberforum.ru/cpp-beginners/thread312481.html
Вопрос о много-модульных проектах... C++
Здравствуйте! Имеется проект из кучи dll(около 20 и планируется свыше сотни)... не спрашивайте зачем... Дак вот... всё бы хорошо, если бы не одна огромная проблема, при которой я не могу работать...
Просят объяснить каждую строчку программы написанная в Borland C++ C++
Вот листинг программы //-------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "raschet.cpp" #include <math.h>...
C++ C++, переопределение ввода-вывода http://www.cyberforum.ru/cpp-beginners/thread312457.html
Решите, пожалуйста, если не трудно) Переопределить операции << и >> для ввода-вывода матриц размерностью m*n, где m и n кон-станты. Матрица хранится в классе.
C++ кому не сложно вот программа которая находит площадь пересечения прямоугольников #include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> void main(){ printf("vvedite kolichestvo... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
03.06.2011, 22:16
Вот небольшой гайд с пояснениями в виде комментов))

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
 
template< typename T >
class Foo
{
public:
    Foo(const T &);
 
    void func1() const;
    void func2(const Foo &) const;
    Foo func3() const;
    Foo func4(const Foo &) const;
 
private:
    T m_foo;
};
 
// Это пишется перед любым методом, определяемым вне класса.
// Говорим компилятору, чтобы сильно не удивлялся, увидев T
template< typename T >
// Здесь говорим, что конструктор Foo должен конструировать именно объект
// класса, инстанцированного как Foo< T > (т.е. именно для типа T)
// Так тоже пишем во всех функциях
Foo< T >::Foo(const T &foo):
m_foo(foo)
{
}
 
// Здесь по аналогии с конструктором
template< typename T >
void Foo< T >::func1() const
{
    std::cout << "func1: " << m_foo << std::endl;
}
 
template< typename T >
// Здесь говорим, что функция объекта класса, инстанцированного как Foo< T >,
// принимает в качестве параметра объект класса, инстанцированного таким же
// образом
void Foo< T >::func2(const Foo< T > &arg) const
{
    std::cout << "func2: " << arg.m_foo << std::endl;
}
 
template< typename T >
// Здесь сообщаем, что возвращать будем объект класса, инстанцированного так
// же, как инстанцирован объект, из которого вызывается функция
Foo< T > Foo< T >::func3() const
{
    std::cout << "func3: " << m_foo << std::endl;
 
    return *this;
}
 
// Здесь просто объединяем то, что делали в func2 и func3
template< typename T >
Foo< T > Foo< T >::func4(const Foo< T > &arg) const
{
    std::cout << "func4: " << arg.m_foo << std::endl;
 
    return *this;
}
 
int main()
{
    Foo< int > bar1(10);
    Foo< int > bar2(15);
 
    bar1.func1();
    bar1.func2(bar2);
 
    Foo< int > bar3 = bar1.func3();
    Foo< int > bar4 = bar1.func4(bar2);
 
    bar3.func1();
    bar4.func1();
 
    return 0;
}
Добавлено через 48 секунд
Сейчас по друзьям напишу.
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru