Domanda

Dopo le risposte utili al mio ultima domanda ho iniziato ad usare il template metodo modello per una classe con un sacco di opzioni diverse. Senza aver tutte, le mie attuali dichiarazioni implementato per oggetti di tale classe apparire così:

pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;

Come si fa a trattare con le liste di parametri lunga del modello? Dovrei usare enums / definisce invece di vero / falso e numeri? Esistono alternative comunemente usata?

È stato utile?

Soluzione

Si, uso enumerazioni (non definisce), invece di vero / falso. In questo modo, se si ottiene i parametri su ordine, quindi il compilatore si lamenta. Inoltre, è molto più chiaro per i lettori.

Come per affrontare con elenchi di parametri lunghi in generale --- nasconderli dietro un typedef, o di un generatore che corregge alcuni dei parametri del modello, e consente di variare gli altri.

Altri suggerimenti

preferisco rivedere il mio disegno se ho avuto una lista di parametri del modello che è così a lungo. Molti parametri sono spesso un'indicazione di cattiva progettazione.

Non faccio C ++, e questo non può applicare anche al modello, ma quello che vorrei provare a che fare con un metodo normale con una lunga lista di parametri è trovare parametri correlati e cercare di raggrupparli in modo sensato e presento parametro oggetti riflettenti il raggruppamento, in modo da avere un elenco più breve di parametri più complessi.

avrei preferito passare un singolo argomento che è una raccolta di un tipo variante, per esempio uno std :: vector.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top