DaRiYs
24-05-2011, 02:57
Писал программу, вроде бы все правильно, а вылетают такие ошибки:
error LNK2019: unresolved external symbol "public: __thiscall vector<int>::~vector<int>(void)" (??1?$vector@H@@QAE@XZ) referenced in function _main Lr9_10.obj Lr9_10
error LNK2019: unresolved external symbol "public: void __thiscall vector<int>::push_back(int)" (?push_back@?$vector@H@@QAEXH@Z) referenced in function _main Lr9_10.obj Lr9_10
error LNK2019: unresolved external symbol "public: __thiscall vector<int>::vector<int>(void)" (??0?$vector@H@@QAE@XZ) referenced in function _main Lr9_10.obj Lr9_10
Среда Visual Studio 2008
Вот код программы:
//main.cpp
#include "stdafx.h"
#include "vector.h"
int main()
{
vector<int>().push_back(1);
return 0;
}
//vector.h
#pragma once
template <typename Type>
class vector
{
private:
int size;
Type* array;
static int instanceCounter;
void newInstance();
public:
vector();
vector(int size);
vector(int size, Type value);
vector(int size, const Type* pointer);
vector(const vector& instance);
int length();
void push_back(Type value);
void destroyInstance();
static int getInstanceCounter();
vector operator +=(vector instance);
vector operator +=(Type instance);
vector operator =(vector instance);
bool operator ==(vector instance);
bool operator !=(vector instance);
Type operator [](int iterator);
~vector();
};
template <typename Type> int vector<Type>::instanceCounter=0;
//vector.cpp
#include "stdafx.h"
#include "vector.h"
template <typename Type> vector<Type>::vector()
{
this.size=0;
this.array=new Type[size];
newInstance();
}
template <typename Type> vector<Type>::vector(int size)
{
this.size=size;
this.array=new Type[size];
newInstance();
}
template <typename Type> vector<Type>::vector(int size, Type value)
{
this.size=size;
this.array=new Type[size];
for(int i=0; i<size; i++)
array[i]=value;
newInstance();
}
template <typename Type> vector<Type>::vector(int size, const Type* pointer)
{
this.size=size;
this.array=new Type[size];
for(int i=0; i<size; i++)
array[i]=pointer[i];
newInstance();
}
template <typename Type> vector<Type>::vector(const vector& instance)
{
this.size=instance.size;
this.array=new Type[size];
for(int i=0; i<size; i++)
this.array[i]=instance.array[i];
newInstance();
}
template <typename Type> int vector<Type>::length()
{
return this.size;
}
template <typename Type> void vector<Type>::push_back(Type value)
{
this.size++;
Type* temp=array;
array=new Type[this.size];
for(int i=0; i<size-1; i++)
array[i]=temp[i];
array[size-1]=value;
}
template <typename Type> void vector<Type>::destroyInstance()
{
if(instanceCounter>0)
instanceCounter--;
delete[] array;
}
template <typename Type> void vector<Type>::newInstance()
{
instanceCounter++;
}
template <typename Type> static int vector<Type>::getInstanceCounter()
{
return instanceCounter;
}
template <typename Type> vector<Type> vector<Type>::operator +=(vector instance)
{
Type* temp=this.array;
array=new Type[this.size+instance.size];
for(int i=0; i<this.size+instance.size; i++)
if(i<this.size)
array[i]=temp[i];
else
array[i]=instance.array[i-instance.size+1];
this.size+=instance.size;
}
template <typename Type> vector<Type> vector<Type>::operator +=(Type instance)
{
Type* temp=this.array;
array=new Type[this.size++];
for(int i=0; i<this.size-1; i++)
array[i]=temp[i];
array[size-1]=instance;
}
template <typename Type> vector<Type> vector<Type>::operator =(vector instance)
{
}
template <typename Type> bool vector<Type>::operator ==(vector instance)
{
}
template <typename Type> bool vector<Type>::operator !=(vector instance)
{
}
template <typename Type> Type vector<Type>::operator [](int iterator)
{
iterator<size ? return this.array[iterator] : return NULL;
}
template <typename Type> vector<Type>::~vector()
{
destroyInstance();
}
Че делать незнаю((( Помогите, очень срочно надо
error LNK2019: unresolved external symbol "public: __thiscall vector<int>::~vector<int>(void)" (??1?$vector@H@@QAE@XZ) referenced in function _main Lr9_10.obj Lr9_10
error LNK2019: unresolved external symbol "public: void __thiscall vector<int>::push_back(int)" (?push_back@?$vector@H@@QAEXH@Z) referenced in function _main Lr9_10.obj Lr9_10
error LNK2019: unresolved external symbol "public: __thiscall vector<int>::vector<int>(void)" (??0?$vector@H@@QAE@XZ) referenced in function _main Lr9_10.obj Lr9_10
Среда Visual Studio 2008
Вот код программы:
//main.cpp
#include "stdafx.h"
#include "vector.h"
int main()
{
vector<int>().push_back(1);
return 0;
}
//vector.h
#pragma once
template <typename Type>
class vector
{
private:
int size;
Type* array;
static int instanceCounter;
void newInstance();
public:
vector();
vector(int size);
vector(int size, Type value);
vector(int size, const Type* pointer);
vector(const vector& instance);
int length();
void push_back(Type value);
void destroyInstance();
static int getInstanceCounter();
vector operator +=(vector instance);
vector operator +=(Type instance);
vector operator =(vector instance);
bool operator ==(vector instance);
bool operator !=(vector instance);
Type operator [](int iterator);
~vector();
};
template <typename Type> int vector<Type>::instanceCounter=0;
//vector.cpp
#include "stdafx.h"
#include "vector.h"
template <typename Type> vector<Type>::vector()
{
this.size=0;
this.array=new Type[size];
newInstance();
}
template <typename Type> vector<Type>::vector(int size)
{
this.size=size;
this.array=new Type[size];
newInstance();
}
template <typename Type> vector<Type>::vector(int size, Type value)
{
this.size=size;
this.array=new Type[size];
for(int i=0; i<size; i++)
array[i]=value;
newInstance();
}
template <typename Type> vector<Type>::vector(int size, const Type* pointer)
{
this.size=size;
this.array=new Type[size];
for(int i=0; i<size; i++)
array[i]=pointer[i];
newInstance();
}
template <typename Type> vector<Type>::vector(const vector& instance)
{
this.size=instance.size;
this.array=new Type[size];
for(int i=0; i<size; i++)
this.array[i]=instance.array[i];
newInstance();
}
template <typename Type> int vector<Type>::length()
{
return this.size;
}
template <typename Type> void vector<Type>::push_back(Type value)
{
this.size++;
Type* temp=array;
array=new Type[this.size];
for(int i=0; i<size-1; i++)
array[i]=temp[i];
array[size-1]=value;
}
template <typename Type> void vector<Type>::destroyInstance()
{
if(instanceCounter>0)
instanceCounter--;
delete[] array;
}
template <typename Type> void vector<Type>::newInstance()
{
instanceCounter++;
}
template <typename Type> static int vector<Type>::getInstanceCounter()
{
return instanceCounter;
}
template <typename Type> vector<Type> vector<Type>::operator +=(vector instance)
{
Type* temp=this.array;
array=new Type[this.size+instance.size];
for(int i=0; i<this.size+instance.size; i++)
if(i<this.size)
array[i]=temp[i];
else
array[i]=instance.array[i-instance.size+1];
this.size+=instance.size;
}
template <typename Type> vector<Type> vector<Type>::operator +=(Type instance)
{
Type* temp=this.array;
array=new Type[this.size++];
for(int i=0; i<this.size-1; i++)
array[i]=temp[i];
array[size-1]=instance;
}
template <typename Type> vector<Type> vector<Type>::operator =(vector instance)
{
}
template <typename Type> bool vector<Type>::operator ==(vector instance)
{
}
template <typename Type> bool vector<Type>::operator !=(vector instance)
{
}
template <typename Type> Type vector<Type>::operator [](int iterator)
{
iterator<size ? return this.array[iterator] : return NULL;
}
template <typename Type> vector<Type>::~vector()
{
destroyInstance();
}
Че делать незнаю((( Помогите, очень срочно надо