Angenommen, ich habe eine Klasse
%Vor%warum, wenn ich
anrufe %Vor% der contructor C(int =10)
wird aufgerufen und wenn ich
Der Standardkonstruktor wird aufgerufen? Wie vermeide ich das? Ich möchte nur meinen Konstruktor ausführen, ich habe versucht, den Standardkonstruktor privat zu machen, aber es funktioniert nicht.
C c();
als Funktionsdeklaration analysiert werden. Um den Default-Konstruktor explizit aufzurufen, müssen Sie C c = C();
. explicit
zu verwenden, um zu verhindern, dass implizite Conversions in unerwarteten Momenten auftreten. Der Code C c();
macht nicht das, was er zu tun scheint:
Er deklariert eine Funktion namens c
, die keine Argumente annimmt und eine C
zurückgibt. Es ist äquivalent zu
Tags und Links c++ constructor default-parameters