Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 00:39   #1
Артём Волжанкин
Пользователь
 
Аватар для Артём Волжанкин
 
Регистрация: 07.07.2012
Сообщений: 99
По умолчанию Параметризованый класс в С++

Не могу понять почему ругается.

ClCompile:
stdafx.cpp
squareMatrix.cpp
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.h(15 ): error C2953: squareMatrix: шаблон класса уже определен
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.h(4) : см. объявление "squareMatrix"
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.cpp( 17): error C2244: squareMatrix<T>::squareMatrix: не удается сопоставить определение функции существующему объявлению
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.h(6) : см. объявление "squareMatrix<T>::squareMatrix"
определение
'squareMatrix::squareMatrix(int)'
существующие объявления
'squareMatrix<T>::squareMatrix(int) '
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.cpp( 55): error C2244: squareMatrix<T>::~squareMatrix: не удается сопоставить определение функции существующему объявлению
l:\e\документы\университет\техн_про гр лабораторные работы\lab3\laba3\squarematrix.h(7) : см. объявление "squareMatrix<T>::~squareMatrix "
определение
'squareMatrix::~squareMatrix(void)'
существующие объявления
'squareMatrix<T>::~squareMatrix(voi d)'


Код:

#include "stdafx.h"

template <class T> class squareMatrix{
public:
	squareMatrix(int nSize);
	~squareMatrix();
private:
	int size;
	T **Matrix;

};

#pragma once
#include "stdafx.h"
#include "squareMatrix.h"

template <class T> squareMatrix<T>::squareMatrix(int nSize){
	Size=nSize;
	std::cout << "Заполните матрицу\n";
	T **matrix = new T* [Size];
	for(int i=0; i<nSize; i++)
		matrix[i]=new T[nSize];
	for(int i=0; i<nSize; i++)
		for(int j=0; j<nSize; j++){
			std::cout << "[" << i << "][" << j << "] <-";
			std::cin >> matrix[i][j];
		}
	Matrix=matrix;
};

template <class T> squareMatrix<T>::~squareMatrix(){
	for(int i; i<Size; i++)
		delete[] Matrix[i];
}
Человек
Артём Волжанкин вне форума Ответить с цитированием
Старый 27.05.2013, 03:03   #2
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Внешние шаблоны до сих пор не поддерживаются Пишите все в хедере...
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложенный класс в шаблон. Указатель на вложенный класс в возвращаемом значении метода шаблона. Что делать? Asya1994 Помощь студентам 3 09.12.2012 01:43
Cоздать класс жидкость. определить конструкторы деструкторы и функцию печати. создать публик производный класс. (С++) Динар Габбасов Помощь студентам 0 28.05.2012 18:44
Добавить класс в проект2,похожий на класс из проекта1!оба проекта есть! xeops C# (си шарп) 0 15.05.2012 20:31
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42