Supongamos que quiero pasar un objeto temporal a una función. ¿Hay alguna manera de hacer eso en 1 línea de código vs. 2, con una estructura?¿Manera simple de pasar estructura temporal por valor en C++?
Con una clase, que puedo hacer:
class_func(TestClass(5, 7));
dado:
class TestClass
{
private:
int a;
short b;
public:
TestClass(int a_a, short a_b) : a(a_a), b(a_b)
{
}
int A() const
{
return a;
}
short B() const
{
return b;
}
};
void class_func(const TestClass & a_class)
{
printf("%d %d\n", a_class.A(), a_class.B());
}
Ahora, ¿cómo puedo hacer eso con una estructura? El más cercano que tengo es:
test_struct new_struct = { 5, 7 };
struct_func(new_struct);
dado:
struct test_struct
{
int a;
short b;
};
void struct_func(const test_struct & a_struct)
{
printf("%d %d\n", a_struct.a, a_struct.b);
}
El objeto es más sencillo, pero me pregunto si hay una manera de hacer la inicialización miembro de estructura justo en línea con la llamada de función , sin darle a la estructura un constructor (No quiero un constructor. La razón por la que estoy usando una estructura es para evitar las reglas estándar de la clase get/set en este caso aislado)
todavía se puede escribir una Kee constructor ping las variables miembro público. Por lo tanto, no necesita métodos get/set. ¿Hay algún problema al hacer eso? – Naveen
¿Quería lograr la inicialización de estructuras en C? En C++ una estructura también puede hacer lo que sea que esté haciendo en la clase. – sand