euler_angles<TYPE> euler_angles<TYPE>::operator =(const euler_angles<TYPE>& e)
{
m_ang = e.m_ang;
+
+ return *this;
}
template <typename T>
template <typename TYPE>
matrix<TYPE>::~matrix()
{
- for (int i = 0; i < m_rows; i++)
- delete[] m_mat[i];
- delete[] m_mat;
+ if (m_mat != NULL)
+ {
+ for (int i = 0; i < m_rows; i++)
+ delete[] m_mat[i];
+ delete[] m_mat;
+ }
}
template <typename TYPE>
return *this;
}
- for (int i = 0; i < m_rows; i++)
- delete[] m_mat[i];
- delete[] m_mat;
+ if (m_mat == NULL)
+ {
+ m_rows = m.m_rows;
+ m_cols = m.m_cols;
+ m_mat = new TYPE *[m_rows];
- m_rows = m.m_rows;
- m_cols = m.m_cols;
- m_mat = new TYPE *[m_rows];
+ for (int i = 0; i < m_rows; i++)
+ m_mat[i] = new TYPE [m_cols];
+ }
+ else
+ {
+ if ((m_rows != m.m_rows) || (m_cols != m.m_cols))
+ {
+ for (int i = 0; i < m_rows; i++)
+ delete[] m_mat[i];
+ delete[] m_mat;
- for (int i = 0; i < m_rows; i++)
- m_mat[i] = new TYPE [m_cols];
+ m_rows = m.m_rows;
+ m_cols = m.m_cols;
+ m_mat = new TYPE *[m_rows];
+
+ for (int i = 0; i < m_rows; i++)
+ m_mat[i] = new TYPE [m_cols];
+ }
+ }
for (int p = 0; p < m_rows; p++)
for (int q = 0; q < m_cols; q++)
quaternion<TYPE> quaternion<TYPE>::operator =(const quaternion<TYPE>& q)
{
m_quat = q.m_quat;
+
+ return *this;
}
template <typename T>
sensor_data<TYPE> sensor_data<TYPE>::operator =(const sensor_data<TYPE>& s)
{
m_data = s.m_data;
+
+ return *this;
}
template <typename T>
float x = 4.0;
float x1 = -2.5;
cout<< "\n\n\nScalar subtraction\n";
- m3 = m11 - x;
+ m13 = m11 - x;
m6 = m10 - x1;
cout<< "\nNumber Subtracted:" << x;
cout<< "\n\n" << m11;
- cout<< "\nResult:\n\n" << m3;
+ cout<< "\nResult:\n\n" << m13;
cout<< "\nNumber Subtracted:" << x1;
cout<< "\n\n" << m10;
cout<< "\nResult:\n\n" << m6;
cout << "\n\nm1:\n\n" << m1;
cout << "\n\n\nm6 != m1 :";
cout << (m6 != m1);
+
+
+ cout<< "\n\nAssignment\n";
+ m3 = m12;
+ cout<< "Input \n" << m12;
+ cout<< "\nOutput:\n" << m3 << endl;
}
cout << "\n\nv15:\n\n" << v15;
cout << "\n\n\nv15 != v15 :";
cout << (v15 != v15);
+
+ cout<< "\n\nAssignment\n";
+ v3 = v1;
+ cout<< "Input \n" << v1;
+ cout<< "\nOutput:\n" << v3 << endl;
}
template <typename TYPE>
vector<TYPE>::~vector()
{
- delete[] m_vec;
+ if (m_vec != NULL)
+ delete[] m_vec;
}
template <typename TYPE>
return *this;
}
- delete[] m_vec;
- m_size = v.m_size;
- m_vec = new TYPE [m_size];
+ if (m_vec == NULL)
+ {
+ m_size = v.m_size;
+ m_vec = new TYPE [m_size];
+ }
+ else
+ {
+ if (m_size != v.m_size)
+ {
+ delete[] m_vec;
+
+ m_size = v.m_size;
+ m_vec = new TYPE [m_size];
+ }
+ }
+
for (int q = 0; q < m_size; q++)
m_vec[q] = v.m_vec[q];
+
return *this;
}