Monopo » 15 апр 2009, 18:40
Пытаюсь собрать, да не получается.
Makefile:
Код: Выделить всё
MASSIV: complex.o massiv.o main.o
g++ -o MASSIV complex.o massiv.o main.o //ошибка здесь при финальной сборке
main.o: main.cpp
g++ -c main.cpp
massiv.o: massiv.cpp
g++ -c massiv.cpp
complex.o: complex.cpp
g++ -c complex.cpp
clean:
rm -f *.o MASSIV
complex.cpp
Код: Выделить всё
#include <stdio.h>
#include <string.h>
#include "iostream"
#include <stdlib.h>
using namespace std;
class Complex
{
public:
int Re;
int Im;
Complex():Re(0),Im(0){};
Complex(const int& tre,const int& tim):Re(tre),Im(tim){};
Complex(const Complex&obj):Re(obj.Re),Im(obj.Im){};
friend ostream& operator<<(ostream&,const Complex&);
friend istream& operator>>(istream&,const Complex&);
};
ostream& operator<<(ostream& out,const Complex& Tc)
{
//..
}
istream& operator>>(istream& in,Complex& Tc)
{
//..
}
complex.h:
Код: Выделить всё
#ifndef _COMPLEX_H_
#define _COMPLEX_H_
#include <stdio.h>
#include <string.h>
#include "iostream"
#include <stdlib.h>
using namespace std;
class Complex
{
public:
int Re;
int Im;
Complex():Re(0),Im(0){};
Complex(const int& tre,const int& tim):Re(tre),Im(tim){};
Complex(const Complex&obj):Re(obj.Re),Im(obj.Im){};
friend ostream& operator<<(ostream&,const Complex&);
friend istream& operator>>(istream&,const Complex&);
};
ostream& operator<<(ostream&,const Complex&);
istream& operator>>(istream&,const Complex&);
#endif //_COMPLEX_H_
massiv.cpp:
Код: Выделить всё
#include "complex.h"
class TMas
{
public:
virtual void Print(void)=0;
virtual void PrintElem(const int& id)=0;
virtual void Input(void)=0;
virtual void PrintCount(void)=0;
};
template <class TType> class Massiv: virtual public TMas
{
public:
Massiv():Head(NULL),Last(NULL),count(0){};
Massiv(const Massiv& ob):
Head(ob.Head),Last(ob.Last),count(ob.count){};
~Massiv(){};
void Input(void);
void PrintElem(const int& id);
void PrintCount();
void Print(void);
int operator()(Massiv<TType>& obj){return obj.count;};
TType operator[](const int& id);
protected:
struct TT{
TType item;
TT*next;
};
int count;
TT *Head;
TT *Last;
};
template <class TType>
void Massiv<TType>::Input(void)
{
//..
}
template <class TType>
void Massiv<TType>::Print(void)
{
//..
}
template <class TType>
TType Massiv<TType>: :o perator[](const int& id)
{
//..
}
template <class TType>
void Massiv<TType>::PrintElem(const int& id)
{
//..
}
template <class TType>
void Massiv<TType>::PrintCount(void)
{
//..
}
massiv.h:
Код: Выделить всё
#ifndef _MASSIV_H_
#define _MASSIV_H_
using namespace std;
class TMas
{
public:
virtual void Print(void)=0;
virtual void PrintElem(const int& id)=0;
virtual void Input(void)=0;
virtual void PrintCount(void)=0;
};
template <class TType> class Massiv: virtual public TMas
{
public:
Massiv():Head(NULL),Last(NULL),count(0){};
Massiv(const Massiv& ob):
Head(ob.Head),Last(ob.Last),count(ob.count){};
~Massiv(){};
void Input(void);
void PrintElem(const int& id);
void PrintCount();
void Print(void);
int operator()(Massiv<TType>& obj){return obj.count;};
TType operator[](const int& id);
protected:
struct TT{
TType item;
TT*next;
};
int count;
TT *Head;
TT *Last;
};
#endif // _MASSIV_H_
Пытаюсь собрать, да не получается.
Makefile:
[code]
MASSIV: complex.o massiv.o main.o
g++ -o MASSIV complex.o massiv.o main.o //ошибка здесь при финальной сборке
main.o: main.cpp
g++ -c main.cpp
massiv.o: massiv.cpp
g++ -c massiv.cpp
complex.o: complex.cpp
g++ -c complex.cpp
clean:
rm -f *.o MASSIV
[/code]
complex.cpp
[code]
#include <stdio.h>
#include <string.h>
#include "iostream"
#include <stdlib.h>
using namespace std;
class Complex
{
public:
int Re;
int Im;
Complex():Re(0),Im(0){};
Complex(const int& tre,const int& tim):Re(tre),Im(tim){};
Complex(const Complex&obj):Re(obj.Re),Im(obj.Im){};
friend ostream& operator<<(ostream&,const Complex&);
friend istream& operator>>(istream&,const Complex&);
};
ostream& operator<<(ostream& out,const Complex& Tc)
{
//..
}
istream& operator>>(istream& in,Complex& Tc)
{
//..
}
[/code]
complex.h:
[code]
#ifndef _COMPLEX_H_
#define _COMPLEX_H_
#include <stdio.h>
#include <string.h>
#include "iostream"
#include <stdlib.h>
using namespace std;
class Complex
{
public:
int Re;
int Im;
Complex():Re(0),Im(0){};
Complex(const int& tre,const int& tim):Re(tre),Im(tim){};
Complex(const Complex&obj):Re(obj.Re),Im(obj.Im){};
friend ostream& operator<<(ostream&,const Complex&);
friend istream& operator>>(istream&,const Complex&);
};
ostream& operator<<(ostream&,const Complex&);
istream& operator>>(istream&,const Complex&);
#endif //_COMPLEX_H_
[/code]
massiv.cpp:
[code]
#include "complex.h"
class TMas
{
public:
virtual void Print(void)=0;
virtual void PrintElem(const int& id)=0;
virtual void Input(void)=0;
virtual void PrintCount(void)=0;
};
template <class TType> class Massiv: virtual public TMas
{
public:
Massiv():Head(NULL),Last(NULL),count(0){};
Massiv(const Massiv& ob):
Head(ob.Head),Last(ob.Last),count(ob.count){};
~Massiv(){};
void Input(void);
void PrintElem(const int& id);
void PrintCount();
void Print(void);
int operator()(Massiv<TType>& obj){return obj.count;};
TType operator[](const int& id);
protected:
struct TT{
TType item;
TT*next;
};
int count;
TT *Head;
TT *Last;
};
template <class TType>
void Massiv<TType>::Input(void)
{
//..
}
template <class TType>
void Massiv<TType>::Print(void)
{
//..
}
template <class TType>
TType Massiv<TType>: :o perator[](const int& id)
{
//..
}
template <class TType>
void Massiv<TType>::PrintElem(const int& id)
{
//..
}
template <class TType>
void Massiv<TType>::PrintCount(void)
{
//..
}
[/code]
massiv.h:
[code]
#ifndef _MASSIV_H_
#define _MASSIV_H_
using namespace std;
class TMas
{
public:
virtual void Print(void)=0;
virtual void PrintElem(const int& id)=0;
virtual void Input(void)=0;
virtual void PrintCount(void)=0;
};
template <class TType> class Massiv: virtual public TMas
{
public:
Massiv():Head(NULL),Last(NULL),count(0){};
Massiv(const Massiv& ob):
Head(ob.Head),Last(ob.Last),count(ob.count){};
~Massiv(){};
void Input(void);
void PrintElem(const int& id);
void PrintCount();
void Print(void);
int operator()(Massiv<TType>& obj){return obj.count;};
TType operator[](const int& id);
protected:
struct TT{
TType item;
TT*next;
};
int count;
TT *Head;
TT *Last;
};
#endif // _MASSIV_H_
[/code]