Articles of costruttore

C ++: dove inizializzare le variabili nel costruttore

Possibile duplicato: Elenchi di inizializzazione C ++ Quali sono i pro / contro dell’inizializzazione delle variabili all’opzione 1 rispetto all’opzione 2? class MyClass { public: MyClass( float f, char a ); private: float mFloat; char mCharacter; bool mBoolean; int mInteger; }; MyClass::MyClass( float f, char a ) : mFloat( f ), mBoolean( true ) // […]

Va bene chiamare il metodo astratto dal costruttore in Java?

Supponiamo di avere una class Base astratta che implementa l’interfaccia Runnable. public abstract class Base implements Runnable { protected int param; public Base(final int param) { System.out.println(“Base constructor”); this.param = param; // I’m using this param here new Thread(this).start(); System.out.println(“Derivative thread created with param ” + param); } @Override abstract public void run(); } E […]

Posso build un object JavaScript senza usare la nuova parola chiave?

Ecco cosa mi piacerebbe fare: function a() { // … } function b() { // Some magic, return a new object. } var c = b(); c instanceof b // -> true c instanceof a // -> true b instanceof a // -> true È ansible? Riesco a rendere b un’istanza di a semplice agganciarla […]

Distruttori di tipi predefiniti (int, char ecc.)

In C ++ il seguente codice fornisce un errore del compilatore: void destruct1 (int * item) { item->~int(); } Questo codice è quasi lo stesso, ho appena digitato l’int a un altro tipo e qualcosa di magico accade: typedef int myint; void destruct2 (myint * item) { item->~myint(); } Perché il secondo codice funziona? Un […]

Metodi o costruttori di incastonatori

finora ho visto due approcci per impostare il valore di una variabile in Java. A volte viene utilizzato un costruttore con argomenti, altri metodi di setter vengono utilizzati per impostare il valore di ciascuna variabile. So che un costruttore inizializza una variabile di istanza all’interno di una class una volta che una class viene istanziata […]

DataContractSerializer non chiama il mio costruttore?

Ho appena realizzato qualcosa di pazzesco, che ho ritenuto assolutamente imansible: quando deserializzi un object, DataContractSerializer non chiama il costruttore ! Prendi questa class, ad esempio: [DataContract] public class Book { public Book() { // breakpoint here } [DataMember(Order = 0)] public string Title { get; set; } [DataMember(Order = 1)] public string Author { […]

È std :: cout garantito per essere inizializzato?

Quello che so di C ++ è che l’ordine delle costruzioni (e delle distruzioni) delle istanze globali non dovrebbe essere assunto. Mentre scrivo codice con un’istanza globale che utilizza std::cout nel costruttore e nel distruttore, ho ricevuto una domanda. std::cout è anche un’istanza globale di iostream. std::cout garantito per essere inizializzato prima di qualsiasi altra […]

Il tipo ‘…’ non ha definito costruttori

Sto notando l’errore del compilatore Il tipo ‘…’ non ha costruttori definiti generati quando cerco erroneamente di creare un’istanza di una class di particelle. Mi ha portato a chiedermi come avrei fatto a scrivere la mia class che avrebbe fatto precipitare questo messaggio quando qualcuno ha tentato di istanziarlo. Quindi il codice qui sotto, cosa […]

Creare un object: con o senza `new`

Possibile duplicato: Qual è la differenza tra l’istanziazione di un object usando nuovo vs. senza Questa è probabilmente una domanda di base e potrebbe essere già stata chiesta (ad esempio, qui ); eppure ancora non lo capisco. Quindi, lascia che te lo chieda. Considera la seguente class C ++: class Obj{ char* str; public: Obj(char* […]

Come posso utilizzare l’elenco di inizializzazione dei membri per inizializzare un array?

class A { public: A(); private: char a[5]; int* ptr; }; A::A() : a(0), ptr(0) { } È giusto?