Expliziter Aufruf eines Konstruktors

Ich kenne das Konzept, das wir nennen können den Konstruktor sowohl Explicitly und Implicitly, und ich habe beide getestet die Szenarien(in der Regel bis jetzt alle meine Zwecke erfüllt bekam durch den Aufruf Konstruktor Implicitlly), aber ich wunderte mich, dass der Konstruktor aufgerufen wird implizit Wann immer wir erstellen objects,, also, was ist der Hauptgrund für den Aufruf der Konstruktor Explicitly. Was Nachteil oder Vorteil es bietet, wenn wir rufen Konstruktor Explicitly über die Implicit Call?

Beispiel

class integer
{
   int m ,n;
 public:
   integer (int x , int y); 
};
integer :: integer (int x , int y )
{
   m=x; n = y;
}

Nun, wenn ich rufen Sie wie

integer int1 = integer( 0 , 100); // Explicit Call
integer int1(1,100); //implicit call
  • Für eine Sache, einen Konstruktor mit zwei oder mehr Argumente können nur aufgerufen werden.
  • Zwei oder mehr Argumente?
  • Können Sie einige code, der nur verwendet implizite Konstruktoren? Ich fühle mich wie es ist etwas Kontext fehlt in der Frage.
  • Gut, dein Beispiel mit dem Titel "Explicit call" ist tatsächlich ein expliziter Aufruf der zwei-argument-Konstruktors, gefolgt von einem impliziten Aufruf des copy-Konstruktors, in der Erwägung, dass dein Beispiel mit dem Titel "Implizite call" ist tatsächlich ein expliziter Aufruf. So sollten Sie sich zuerst um Ihre Definitionen bevor Sie Fragen über irgendwelche Vorteile, weil nicht alles, was getan werden kann, durch einen expliziten Konstruktor-Aufruf kann gemacht werden, indem eine implizite (wie aschepler bereits erwähnt), wäre das ein klarer Vorteil.
  • Rau mein code ist nur ein Beispielcode, um zu zeigen, jeder Anruf, ich möchte nur Fragen, die ich anrufen kann Konstruktor von beiden Typen, aber warum EXPLIZITEN AUFRUF
  • Ok, lassen beiseite die echte definition von expliziten aufrufen und unter Berücksichtigung der eigenen, dann die Wahl integer int1 = integer(0, 100) über integer int1(1, 100) zwar keinen Sinn macht hier. Aber Bedenken Sie, dass die tatsächliche definition eines expliziten Konstruktor-Aufruf ist etwas ganz anderes (und das zweite Beispiel ist eigentlich eine explizite Konstruktor-Aufruf), das macht die meisten der vorhandenen Antwort nicht die Beantwortung Ihrer eigentlichen Frage an alle. Und die gibt explizite Konstruktor ruft eine ganze Reihe von Vorteilen, wie Sie Sie nutzen die meiste Zeit für Dinge, die Sie nicht mit implicits.
  • Rau ...ok also nach ur statment And which gives explicit constructor calls a whole bunch of advantages, as you use them most of the time for things you cannot do with implicits. können Sie bitte schreiben Sie diese Vorteile in form einer Antwort.?
  • getan.

InformationsquelleAutor Tejendra | 2012-08-20
Schreibe einen Kommentar