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

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

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

Восстановить пароль

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

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

Создается класс

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;

class Complex{
friend ostream &operator<<(ostream&, const Complex&);
friend istream &operator>>(istream&, Complex&);
private:
  float re;
  float im;
};
ostream &operator<<(ostream &output, const Complex &comp){
  output<<"re="<<comp.re<<" im="<<comp.im;
  return output;
}
istream &operator>>(istream &input, Complex &comp){
  input>>comp.re;
  input>>comp.im;
  return input;
}

void main(){
  Complex A, B;
  cin>>A>>B;
  cout<<A<<B;
  system("pause");
}
работает правильно
но при вставке в шаблон ругается на
закомментированных строках

Код:
#pragma once
#include <iostream>
#include "stdafx.h"



using namespace std;
class Complex;

template <class T> class MySquareMatrix{
public:
	MySquareMatrix(int nSize);
	~MySquareMatrix();
	void multiplication(const T & Value);
	void multiplication(MySquareMatrix *MatrixNew);
	void outSquareMatrix();
private:
	int size;
	T **Matrix;

};

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


template <class T> void MySquareMatrix<T>::outSquareMatrix(){
	cout << "\n";
	for(int i=0; i<size; i++){
		for(int j=0; j<size; j++){
			cout.width(6);
//			cout << Matrix[i][j];
		}
		cout << "\n";
	}
}
В майне делаю такой вызов
Код:
	MySquareMatrix<Complex> mas(m);
	mas.outSquareMatrix();
stdafx.obj : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class Complex &)" (??6@YAAAV?$basic_ostream@DU?$char_ traits@D@std@@@std@@AAV01@AAVComple x@@@Z) уже определен в laba3.obj
stdafx.obj : error LNK2005: "class std::basic_istream<char,struct std::char_traits<char> > & __cdecl operator>>(class std::basic_istream<char,struct std::char_traits<char> > &,class Complex &)" (??5@YAAAV?$basic_istream@DU?$char_ traits@D@std@@@std@@AAV01@AAVComple x@@@Z) уже определен в laba3.obj
Человек

Последний раз редактировалось Stilet; 27.05.2013 в 20:46.
Артём Волжанкин вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Параметризация запросов denniskvazaryes SQL, базы данных 1 28.08.2012 14:19
Один и тот же код на С++ и С#, Шаблоны, отображение содержимого шаблонного класса pinkiller Общие вопросы .NET 2 01.06.2012 12:22
Шаблоны класса Rayzor Помощь студентам 2 21.04.2012 16:23
Шаблоны класса и специализация РагнаР Общие вопросы C/C++ 9 13.03.2011 19:29
Шаблоны - нужно создать объект класса abc в котором вместо aa использовался бы объект класса fff? Farrel Общие вопросы C/C++ 2 13.11.2010 17:37