2016-08-28 1 views
0

Wenn ich zurückgeben; oder return void(); in einer regulären Void-Methode der C++ - Klasse in Qt 5 kompiliert ok. Wenn ich es in einem Slots Methode erzeugt der Compiler den folgenden Fehler:C2120 bei der Rückkehr in einen leeren Steckplatz in Qt C++

error C2120: 'void' illegal with all types

Hier heißt es, dass eine Rückkehr in nichtig ist möglich: Can I return in void function?

Hier wird angegeben, dass, da Schlitze sind normale C++ Funktionen, die einen Wert zurückgeben können, einschließlich void, nehme ich an. http://www.qtcentre.org/archive/index.php/t-26724.html

Irgendwelche Ideen, warum ein C2120 unter diesen Umständen ausgegeben wird?

+0

Welcher Compiler und welche Version ist das? Kannst du es auf einem Online-Compiler reproduzieren? –

+0

Mach dir keine Sorgen darüber; Diese Frage wird sowieso als off-topic geschlossen, da es sich um einen einfachen Fehler handelt, der leicht zu beheben ist. –

Antwort

0

Sie können nur Void von einer Void-Funktion zurückgeben. Zum Beispiel:

void foo() 
{ 
    return void(); 
} 

sonst kann man zurückkehren wie

void foo() 
{ 
    return; 
} 

die an sich nichtig ist.

wie in diesem Beispiel angegeben, aber Sie können nichts anderes zurückgeben, deshalb gibt es einen Fehler.

+0

Die Frage besagt, dass der Fehler ausgelöst wird durch die Rückgabe von "void", nicht "etwas anderes". –

Verwandte Themen