Неправильно выводится массив float, через шаблон класса
#include <iostream>
using namespace std;
template<typename xy>
class triangle
{
public:
triangle(xy* coord1, xy* coord2, xy* coord3)
{
memcpy(coord1, coord1, 2);
memcpy(coord2, coord2, 2);
memcpy(coord3, coord3, 2);
}
void square()
{
for(int i = 0; i<2; i++)
{
cout << coord1[i] << endl;
}
}
private:
xy coord1[2];
xy coord2[2];
xy coord3[2];
};
int main()
{
double A[2] = {123123, 3.3};
double B[2] = {1.4, 3.3};
double C[2] = {1.4, 3.3};
triangle<double> c(A, B, C);
c.square();
return 0;
}
В итоге выводит 2.05591e+266 8.0085e-307 Как сделать так, чтоб числа выводились в нормальном формате? setrprecision не помогает.
Ответы (2 шт):
Автор решения: ikarimaru
→ Ссылка
template<typename xy>
class triangle
{
public:
triangle(xy *point1, xy *point2, xy *point3)
{
memcpy(coord1, point1, sizeof(coord1));
memcpy(coord2, point2, sizeof(coord2));
memcpy(coord3, point3, sizeof(coord3));
}
void square()
{
for(int i = 0; i<2; i++)
{
cout << coord1[i] << endl;
}
}
private:
xy coord1[2];
xy coord2[2];
xy coord3[2];
};
Проблема была в неверном копировании массива