Tag: OPERATOR-OVERLOADING
Tengo un problema con mi diseño actual. Tengo una clase que se puede construir con cualquier argumento. Si ayuda conceptualmente, piense en T como si fuera para lambdas. // 1 template<class t=””> foo(T) {/*…*/} Esta clase sobrecarga muchos operadores, como != // 2 template<class t=””> bool foo::operator!=(const T&) {/*…*/} Los . . . Read more
Me gustaría que todas las comparaciones de números decimales se realicen con float_cmp::approx_eq (por ejemplo), pero seguir utilizando el operador de comparación de igualdad ==. ¿Cómo puedo lograr esto? impl PartialEq for f32 { fn eq(&self, other: &Self) -> bool { approx_eq!(f32, *self, *other) } } Resulta en: error[E0119]: implementaciones . . . Read more
El siguiente código funciona para comparar dos números complejos en C++: #include <iostream> #include <math.h> class Complex { private: float real; float imag; public: Complex(float realVal, float imagVal): real(realVal), imag(imagVal) {} double magnitude() { return sqrt(real*real)+sqrt(imag*imag); } friend bool operator<(Complex& c1, Complex& c2) { if(c1.magnitude() < c2.magnitude()){ return true; } . . . Read more
Tengo el siguiente código: #include <iostream> #include <cassert> class Matrix { private: double m_data[3][3]{}; public: double& operator()(int row, int col); }; double& Matrix::operator()(int row, int col) { assert(col >= 0 && col < 3); assert(row >= 0 && row < 3); return m_data[row][col]; } int main() { Matrix matrix; matrix(1, . . . Read more
Estoy buscando usar las expresiones pasadas en el operador []. Pensé que usando argumentos de plantilla variádicos funcionaría, pero me equivoqué… ¿Hay alguna forma de hacer esto en c++11? class object { private: public: void values() { std::cout << “finalizado” << std::endl; } template <typename t,=”” typename…=”” type=””> void values(T . . . Read more