Supponiamo di voler passare un oggetto temporaneo in una funzione. C'è un modo per farlo in 1 linea di codice contro 2, con una struct?Un modo semplice per passare la struttura temporanea in base al valore in C++?
con una classe, non posso fare:
class_func(TestClass(5, 7));
dato:
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());
}
Ora, come faccio a farlo con una struct? Il più vicino che ho è:
test_struct new_struct = { 5, 7 };
struct_func(new_struct);
dato:
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);
}
L'oggetto è più semplice, ma mi chiedo se c'è un modo per fare l'inizializzazione membro struct perfettamente in linea con la chiamata di funzione , senza dare alla struct un costruttore. (Non voglio un costruttore. Tutta la ragione che sto usando una struct è quello di evitare i get/set convenzioni classe boilerplate in questo caso isolato.)
È ancora possibile scrivere un kee costruttore ping le variabili membro pubbliche. Quindi non hai bisogno di metodi get/set. C'è qualche problema nel farlo? – Naveen
Intendevi realizzare l'inizializzazione della struct in C? In C++ una struct può anche fare qualunque cosa tu stia facendo nella classe. – sand