Articles of costruttore di

Inizializza i membri protetti del genitore con l’elenco di inizializzazione (C ++)

È ansible utilizzare l’elenco di inizializzazione di un costruttore di classi child per inizializzare i membri dati dichiarati come protetti nella class genitore? Non riesco a farlo funzionare. Posso aggirarlo, ma sarebbe bello se non dovessi farlo. Alcuni esempi di codice: class Parent { protected: std::string something; }; class Child : public Parent { private: […]

In Ruby, qual è la relazione tra “nuovo” e “inizializza”? Come restituire nil durante l’inizializzazione?

Quello che voglio è: obj = Foo.new(0) # => nil or false Questo non funziona: class Foo def initialize(val) return nil if val == 0 end end So in C / C ++ / Java / C #, non possiamo restituire un valore in un costruttore. Ma mi chiedo se sia ansible in Ruby.

La data di costruzione (…) è deprecata. Cosa significa? (Giava)

Sto cercando di creare una data come questa: date = new Date(year-1900,mon-1,day,hrs,min,sec); ed Eclips mi dà questo avvertimento: “Il costruttore Date (int, int, int, int, int) è deprecato“. Cosa significa per un costruttore essere deprecato? Cosa posso fare?

Chi cancella la memoria allocata durante un’operazione “nuova” che ha un’eccezione nel costruttore?

Non posso davvero credere di non aver trovato una risposta chiara a questo … Come liberare la memoria allocata dopo che un costruttore di classi C ++ genera un’eccezione, nel caso in cui è inizializzata utilizzando il new operatore. Per esempio: class Blah { public: Blah() { throw “oops”; } }; void main() { Blah* […]

È ansible specificare in modo esplicito i parametri del modello di un costruttore?

Un costruttore di una class può essere una funzione di modello. Nel punto in cui viene chiamato un tale costruttore, il compilatore di solito esamina gli argomenti forniti al costruttore e determina da essi i parametri del modello utilizzato. C’è anche qualche syntax per specificare esplicitamente i parametri del template? Un esempio forzato: struct A […]

Usare la riflessione C # per chiamare un costruttore

Ho il seguente scenario: class Addition{ public Addition(int a){ a=5; } public static int add(int a,int b) {return a+b; } } Sto chiamando aggiungere in un’altra class: string s=”add”; typeof(Addition).GetMethod(s).Invoke(null, new object[] {10,12}) //this returns 22 Ho bisogno di un modo simile alla precedente riflessione per creare un nuovo object di tipo Addizione usando Addition(int […]

Come inizializzare un campo const nel costruttore?

Immaginate di avere una class C ++ Foo e una class Bar che deve essere creata con un costruttore in cui viene passato un puntatore Foo e questo puntatore è destinato a rimanere immutabile nel ciclo di vita dell’istanza Bar. Qual è il modo corretto di farlo? In effetti, pensavo di poter scrivere come il […]

Lanciare le eccezioni dai costruttori

Sto avendo un dibattito con un collega sul lancio di eccezioni dai costruttori, e ho pensato che mi sarebbe piaciuto un feedback. Va bene gettare eccezioni dai costruttori, dal punto di vista del design? Diciamo che sto confezionando un mutex posix in una class, sarebbe simile a questo: class Mutex { public: Mutex() { if […]

Cos’è l’ereditarietà del costruttore?

In C ++ 11, cosa si intende per ereditare il costruttore? Se è ciò che penso sia (il costruttore della class base viene portato nell’ambito della class derivata), quali sono le sue implicazioni sul mio codice? Quali sono le applicazioni di tale funzione?

Costruttore di template in C ++

Vorrei avere una class non-template con un costruttore di template senza argomenti. Per quanto ho capito, è imansible averlo (perché sarebbe in conflitto con il costruttore predefinito – ho ragione? ), E la soluzione è la seguente: class A{ template A(U* dummy) { // Do something } }; Forse c’è un’alternativa migliore per questo (o […]