Kein Konstruktor aufgerufen? [Duplikat]

1
Saif Faidi 2020-03-05 11:11.

Ich versuche, Konstruktoren zu verstehen, die mit l / r- Werten aufrufen , also habe ich class AFolgendes erstellt:

class A {
    public :
    A()            { cout << "called default constructor" << endl ; }
    A(const A&)    { cout << "called copy constructor" << endl ; }
    A(const A&&)   { cout << "called move constructor" << endl ; }
};

In der Hauptfunktion habe ich eine Instanz erstellt a

int main()
{
    A a(A());
    return 0;
}

aber kein Konstruktor unter den implementierten Konstruktoren wird aufgerufen!

irgendeine Erklärung? Dankeschön!

1 answers

4
Vlad from Moscow 2020-03-05 18:14.

Diese

A a(A());

ist eine Funktionsdeklaration mit dem Rückgabetyp Aund einem Parameter des Typs A(). Dies ist ein Funktionstyp, der keine Argumente akzeptiert und einen zurückgibt A. Der Compiler passt den Parameter implizit an den Zeigertyp an, damit er wie folgt funktioniert A (*)().

Um ein Objekt zu deklarieren, sollten Sie entweder schreiben

A a( ( A() ));

Oder

A a {A()};

oder zum Beispiel

A a( A{} );

Hier ist ein Demonstrationsprogramm

#include <iostream>

using namespace std;

class A {
    public :
    A()            { cout << "called default constructor" << endl ; }
    A(const A&)    { cout << "called copy constructor" << endl ; }
    A(const A&&)   { cout << "called move constructor" << endl ; }
};

int main() 
{
    A a1( ( A() ) );
    A a2( A{} );

    A a3 { A() };


    return 0;
}

Seine Ausgabe ist

called default constructor
called default constructor
called default constructor

Beachten Sie, dass in diesen Objekterklärungen eine Kopierentscheidung vorliegt.

Um zum Beispiel den Kopierkonstruktor aufzurufen, den Sie schreiben könnten

A a1;
A a2( a1 );

Eine einfache Möglichkeit, den Verschiebungskonstruktor aufzurufen, ist beispielsweise

A a1;
A a2( std::move( a1 ) );

Related questions

MORE COOL STUFF

Cate Blanchett schlief nach 3 gemeinsamen Tagen mit ihrem Ehemann und ist 25 Jahre später immer noch mit ihm verheiratet

Cate Blanchett schlief nach 3 gemeinsamen Tagen mit ihrem Ehemann und ist 25 Jahre später immer noch mit ihm verheiratet

Cate Blanchett widersetzte sich typischen Dating-Ratschlägen, als sie ihren Ehemann traf.

Warum Michael Sheen ein gemeinnütziger Schauspieler ist

Warum Michael Sheen ein gemeinnütziger Schauspieler ist

Michael Sheen ist ein gemeinnütziger Schauspieler, aber was genau bedeutet das?

Hallmark-Star Colin Egglesfield sorgt für spannende Fan-Begegnungen bei RomaDrama Live! [Exklusiv]

Hallmark-Star Colin Egglesfield sorgt für spannende Fan-Begegnungen bei RomaDrama Live! [Exklusiv]

Hallmark-Star Colin Egglesfield sprach über spannende Fan-Begegnungen bei RomaDrama Live! plus sein INSPIRE-Programm auf der Convention.

Warum Sie „Northern Exposure“ nicht online streamen können

Warum Sie „Northern Exposure“ nicht online streamen können

Sie müssen einen Blu-ray- oder DVD-Player abstauben, um zu sehen, warum Northern Exposure zu einer der beliebtesten Shows der 90er Jahre wurde.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

Werfen Sie diese Pappröhren nicht weg! 10 Möglichkeiten, sie wiederzuverwenden

Werfen Sie diese Pappröhren nicht weg! 10 Möglichkeiten, sie wiederzuverwenden

Werfen Sie Ihr Papierhandtuch, Toilettenpapier und Geschenkpapierrollen nicht in den Müll. Geben Sie ihnen stattdessen mit einem dieser 10 Hacks ein zweites Leben.

Schlafen Fische?

Schlafen Fische?

Es ist schwer vorstellbar, dass Nemo im Great Barrier Reef ein paar Zs fängt. Aber Fische brauchen Ruhe. Schlafen sie so wie wir?

Spenden Sie Ihr Haar, um unser Wasser sauber zu halten

Spenden Sie Ihr Haar, um unser Wasser sauber zu halten

Haarteile aus Salons und persönliche Spenden können als Matten wiederverwendet werden, die Ölverschmutzungen aufsaugen und zum Schutz der Umwelt beitragen.

Der Curiosity Rover der NASA erfasst ein atemberaubendes Panorama der Marslandschaft

Der Curiosity Rover der NASA erfasst ein atemberaubendes Panorama der Marslandschaft

Bild: NASA / Gizmodo Nach Monaten stetigen Fortschritts hat der Curiosity Rover der NASA die Spitze des Vera Rubin Ridge erreicht. Und wie der gute Bergsteiger, der es ist, nutzte der Rover die Gelegenheit, sich umzusehen und die Aussicht von oben zu genießen.

Ist das der Anfang vom Ende von Brittney Griners Inhaftierung?

Ist das der Anfang vom Ende von Brittney Griners Inhaftierung?

Brittney Griner (r.) Brittney Griners Status war von Anfang an die einzigartigste amerikanische Geiselsituation in der modernen Geschichte.

Tom Brady ist der erste Quarterback, der Julio Jones endlich mehr als 10 Touchdowns in einer Saison bescheren kann

Tom Brady ist der erste Quarterback, der Julio Jones endlich mehr als 10 Touchdowns in einer Saison bescheren kann

Wir konnten dieses Jahr viel mehr von einem gesunden Julio Jones in der Endzone sehen. John Parker Wilson, Greg McElroy, A.

Es musste Deutschland sein

Es musste Deutschland sein

Für England gibt es keinen größeren Bösewicht Die meisten englischen Fans, wenn nicht alle, hätten mit dem Kopf genickt, als der Schlusspfiff des zweiten Halbfinals der W Euro 2022 ertönte. Denn es signalisierte, dass Deutschland im Wembley-Finale auf England und das einzige zwischen den Engländern und der Damenmannschaft warten würde, um den ersten großen Pokal.

Tudor Dixon gewinnt Michigan GOP Primary und trifft nun auf die amtierende Demokratin Gretchen Whitmer

Tudor Dixon gewinnt Michigan GOP Primary und trifft nun auf die amtierende Demokratin Gretchen Whitmer

Tudor Dixon hat am Dienstag die Vorwahlen von Michigan zum Gouverneur gewonnen, nachdem er eine späte Bestätigung des ehemaligen Präsidenten Donald Trump erhalten hatte

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton verbringt einen Tag am Wasser in London, plus Jennifer Lopez, Julianne Hough und mehr

Kate Middleton verbringt einen Tag am Wasser in London, plus Jennifer Lopez, Julianne Hough und mehr

Kate Middleton verbringt einen Tag am Wasser in London, plus Jennifer Lopez, Julianne Hough und mehr. Von Hollywood bis New York und überall dazwischen, sehen Sie, was Ihre Lieblingsstars vorhaben!

17-Jähriger erstochen, während 4 weitere bei einem Messerangriff am Wisconsin River verwundet wurden

17-Jähriger erstochen, während 4 weitere bei einem Messerangriff am Wisconsin River verwundet wurden

Die Ermittler prüfen, ob sich die Gruppe und der Verdächtige vor dem Angriff kannten

Start- und Landebahnen

Start- und Landebahnen

Spätsommer und Herbst sind nostalgische Jahreszeiten. Straßenlaternen werfen ihr Licht über regennasse Straßen, und die Blätter unter den Füßen – gedämpft rot-orange im Schatten der Dämmerung – erinnern an vergangene Tage.

Stellen Sie sich vor, Sie erstellen eine Inhaltsstrategie, die tatsächlich KONVERTIERT. Es ist möglich.

Stellen Sie sich vor, Sie erstellen eine Inhaltsstrategie, die tatsächlich KONVERTIERT. Es ist möglich.

Im Jahr 2021 ermutige ich Sie, alles zu überdenken, was Sie über die Kunden, die Sie bedienen, und die Geschichten, die Sie ihnen erzählen, wissen. Zurücktreten.

Ein Mammutverlust öffnete mein Herz für die Liebe

Ein Mammutverlust öffnete mein Herz für die Liebe

Am Tag des 9. Geburtstags von Felix The Cat erinnere ich mich an einen der größten Verluste meines Erwachsenenlebens – meine Sophie im Jahr 2013. Ich habe diesen Essay geschrieben und ihn kurz im Jahr 2013 auf dieser Plattform geteilt.

Wenn Sie nicht die Person sein können, die das Internet von Ihnen will

Wenn Sie nicht die Person sein können, die das Internet von Ihnen will

Ich hasse das Wort „Zugwrack“. Die Menschen trösten sich mit ihrem eigenen moralischen Kompass und treffen dabei auf ein Urteil.

Language