Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 534
#1

Шаблон метода в классе - C++

27.04.2015, 22:17. Просмотров 335. Ответов 8
Метки нет (Все метки)

Скажите, не могу использовать метод в классе на основе шаблона. Не выходит.
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
class MYCLASS
{
public:
    MYCLASS();
    ~MYCLASS();
 
    int a;
 
    template <typename T>
    void abc(T* in);
 
private:
 
};
 
template <typename T>
void MYCLASS::abc(T* in){
    a = *in;
}
 
 
 
int main(){
 
MYCLASS myclass;
 
int asd = 123;
myclass.abc(&asd);
 
getchar();
};

http://www.cyberforum.ru/cpp-beginners/thread1354348.html

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2015, 22:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шаблон метода в классе (C++):

Шаблон класса в классе
Есть список(кольцевой) который содержит узлы(Node). Список - шаблон...

Смещение метода в классе
Есть такой класс.class ICOMPONENT { public: // Property management: ...

Создание метода в классе
Добрый день. Написал алгоритм чтения файла, в котором создаётся вектор...

В классе не видно метода
Доброго времени суток, реализация класса разбита на заголовочные файлы и...

шаблон функции в нешаблонном классе
Возможно ли сделать не шаблонный класс, у которого одна или несколько...

8
f1ff
13 / 13 / 12
Регистрация: 11.04.2015
Сообщений: 64
27.04.2015, 22:23 #2
а так?
C++
1
myclass.abc<int>(&asd);
0
_Valera_
489 / 371 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
27.04.2015, 22:24 #3
Цитата Сообщение от zasadadada Посмотреть сообщение
MYCLASS();
* * ~MYCLASS();
Нужно либо реализацию, либо пустое тело {}
И вобще не надо их вызывать если они ничего не делают.
1
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 534
27.04.2015, 22:35  [ТС] #4
Шаблон можно использовать только в одном файле? Нельзя делить на h и cpp?
0
_Valera_
489 / 371 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
27.04.2015, 22:46 #5
Цитата Сообщение от zasadadada Посмотреть сообщение
Шаблон можно использовать только в одном файле? Нельзя делить на h и cpp?
Нет, ну или у меня не получалось.
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
28.04.2015, 05:56 #6
Так делить?

MyCPPFile.cpp
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
#include "MyHeadFile.h"
 
int main(){
   MyClass ObjA;
   ObjA.foo("12345");
}


MyHeadFile.h
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef MYHEADFILE_H_INCLUDED
#define MYHEADFILE_H_INCLUDED
#include <iostream>
 
class MyClass{
public:
    MyClass(){};
    ~MyClass(){};
    template <typename T>
    void foo(T x){ std::cout<<x<<"\n"; }
};
 
#endif // MYHEADFILE_H_INCLUDED
0
Raali
639 / 343 / 74
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
28.04.2015, 14:00 #7
Цитата Сообщение от _Valera_ Посмотреть сообщение
Шаблон можно использовать только в одном файле?
определение и объявление шаблонов только в хидере
0
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 534
28.04.2015, 14:56  [ТС] #8
Не получается сделать для конструктора класса
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class MyClass
{
public:
    int abc;
    template <typename T>
    MyClass::MyClass(T* _a);
    MyClass::~MyClass();
};
 
 
template <typename T>
MyClass::MyClass(T* _a){
    abc = *_a;
};
MyClass::~MyClass(){
 
};
 
int main(){
    int aaa = 123;
 
getchar();
};
0
DrOffset
7517 / 4513 / 1097
Регистрация: 30.01.2014
Сообщений: 7,362
28.04.2015, 17:15 #9
zasadadada,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class MyClass
{
public:
    int abc;
    template <typename T>
    MyClass(T* _a); //<<- тут не надо писать MyClass::
    ~MyClass();     //<<- тут не надо писать MyClass::
};
 
template <typename T>
MyClass::MyClass(T* _a){
    abc = *_a;
} //<< - тут не надо писать ;
MyClass::~MyClass(){
 
} //<< - тут не надо писать ;
0
28.04.2015, 17:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2015, 17:15
Привет! Вот еще темы с решениями:

Вызов метода в классе из другого
Не получается выполнить следующую цепочку действий. Запускаю метод в классе B...

Структура в классе (из метода увидеть переменную)
class Records { public: int Count; struct Param { ...

Шаблон метода класса
Здравствуйте, могу ли я создавать шаблоны методов &quot;нешаблонных&quot; классов?...

В производном классе вызов приватного метода базового класса
Добрый вечер. Помогите понять одну вещь. Имеется такое наследование: class...


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

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

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