Supponiamo che ho una classecostruttore con un parametro predefinito
class C {
C(int a=10);
};
perché se chiamo
C c;
il contructor C(int =10)
si chiama e se chiamo
C c();
il costruttore di default è chiamato? Come evitare questo? Voglio eseguire solo il mio costruttore, ho cercato di rendere privato il costruttore predefinito, ma non funziona.
Che ne dici se ci fornisci una porzione di codice compilabile che ci mostra il comportamento che ritieni di vedere? Come puoi vedere dalle risposte finora, ciò che descrivi non è ciò che il codice dovrebbe fare. – sbi
Proprio come una FYI, MSVC (almeno dal VS2003) fornirà un avvertimento su questo problema: 'avviso C4930: 'C c (void)': funzione prototipo non chiamata (era prevista una definizione di variabile?)' Conosco altri compilatori anche così, ma quelli che ho prontamente disponibili al momento no. –