#include <iostream>
#include <math.h>
#include <string>
#include <windows.h>
using namespace std;
const n=10;
char* rus(char*);
template <class type> class vector
{
private:
type* one;
public:
vector();
~vector();
void print();
void run();
vector<type>& set(type*);
};
template <class type>
vector<type>::vector()
{
one=new type[];
cout<<rus("Создаю новый объект типа 'вектор'")<<endl;
}
template <class type>
vector<type>::~vector()
{
cout<<rus("Удаляю объект.\n")
delete [] one;
one=NULL;
}
template <class type>
vector<type>& vector<type>::set(type* a)
{
for(int i=0;i<n;i++)
one=a;
return *this;
}
template <class type>
void vector<type>::print()
{
cout<<rus("Вектор:\n");
for(int i=0;i<n;i++)
cout<<one<<" ";
cout<<"\n";
}
template <class type>
void vector<type>::run()
{
for(int i=0;i<n;i++)
{
one*=pow(-1, i);
}
cout<<rus("Работаю...\n");
}
char buf[256];
char* rus(char* text)
{
CharToOem(text, buf);
return buf;
}
int main()
{
string type;
cout<<rus("Введите тип данных вектора:\n");
cin>>type;
if (type=="int")
{
vector<int> first;
int* first1;
first1=new int[];
for(int i=0;i<n;i++)
first1=i;
first=first.set(first1);
first.run();
first.print();
}
else if (type=="double")
{
vector<double> second;
double* second1;
second1=new double[];
for(int i=0;i<n;i++)
second1=static_cast<double>(i)*5/6; // i*5./6
second=second.set(second1);
second.run();
second.print();
}
else if (type=="char")
{
vector<char> third;
char* third1;
third1=new char[];
for(int i=0;i<n;i++)
third1=char(65+i);
third=third.set(third1);
third.run();
third.print();
}
system("pause");
return 0;
}
Программа вылетает с ошибкой: Debug assertion failed [C++]
В общем. Программа работает, выдает правильные результаты, но после выполнения вылетает с такой ошибкой. Так же в окне ошибки указан файл dbgheap.c (строка 1017). В чем дело?
Код:
#include <iostream>
#include <math.h>
//#include <string>
//#include <windows.h>
using namespace std;
#define n 10
char* rus(char*);
template <class type> class vector
{
private:
type* one;
public:
vector();
~vector();
void print();
void run();
vector<type>& set(type*);
};
template <class type>
vector<type>::vector()
{
one=new type[n];
cout<<"Создаю новый объект типа \'вектор\'"<<endl;
}
template <class type>
vector<type>::~vector()
{
cout<<"Удаляю объект.\n";
delete [] one;
one=NULL;
}
template <class type>
vector<type>& vector<type>::set(type* a)
{
for(int i=0;i<n;i++)
one=a;
return *this;
}
template <class type>
void vector<type>::print()
{
cout<<"Вектор:\n";
for(int i=0;i<n;i++)
cout<<one<<" ";
cout<<"\n";
}
template <class type>
void vector<type>::run()
{
for(int i=0;i<n;i++)
{
one*=pow(-1, i);
}
cout<<"Работаю...\n";
}
/*char buf[256];
char* rus(char* text)
{
CharToOem(text, buf);
return buf;
}*/
int main()
{
string type;
cout<<"Введите тип данных вектора:\n";
cin>>type;
if (type=="int")
{
vector<int> first;
int* first1;
first1=new int[n];
for(int i=0;i<n;i++)
first1=i;
first=first.set(first1);
first.run();
first.print();
}
else if (type=="double")
{
vector<double> second;
double* second1;
second1=new double[n];
for(int i=0;i<n;i++)
second1=double(i)*5/6; // i*5./6
second=second.set(second1);
second.run();
second.print();
}
else if (type=="char")
{
vector<char> third;
char* third1;
third1=new char[n];
for(int i=0;i<n;i++)
third1=char(65+i);
third=third.set(third1);
third.run();
third.print();
}
//system("pause");
return 0;
}
#include <math.h>
//#include <string>
//#include <windows.h>
using namespace std;
#define n 10
char* rus(char*);
template <class type> class vector
{
private:
type* one;
public:
vector();
~vector();
void print();
void run();
vector<type>& set(type*);
};
template <class type>
vector<type>::vector()
{
one=new type[n];
cout<<"Создаю новый объект типа \'вектор\'"<<endl;
}
template <class type>
vector<type>::~vector()
{
cout<<"Удаляю объект.\n";
delete [] one;
one=NULL;
}
template <class type>
vector<type>& vector<type>::set(type* a)
{
for(int i=0;i<n;i++)
one=a;
return *this;
}
template <class type>
void vector<type>::print()
{
cout<<"Вектор:\n";
for(int i=0;i<n;i++)
cout<<one<<" ";
cout<<"\n";
}
template <class type>
void vector<type>::run()
{
for(int i=0;i<n;i++)
{
one*=pow(-1, i);
}
cout<<"Работаю...\n";
}
/*char buf[256];
char* rus(char* text)
{
CharToOem(text, buf);
return buf;
}*/
int main()
{
string type;
cout<<"Введите тип данных вектора:\n";
cin>>type;
if (type=="int")
{
vector<int> first;
int* first1;
first1=new int[n];
for(int i=0;i<n;i++)
first1=i;
first=first.set(first1);
first.run();
first.print();
}
else if (type=="double")
{
vector<double> second;
double* second1;
second1=new double[n];
for(int i=0;i<n;i++)
second1=double(i)*5/6; // i*5./6
second=second.set(second1);
second.run();
second.print();
}
else if (type=="char")
{
vector<char> third;
char* third1;
third1=new char[n];
for(int i=0;i<n;i++)
third1=char(65+i);
third=third.set(third1);
third.run();
third.print();
}
//system("pause");
return 0;
}