2017-02-09 2 views
0

In einem Peer-Review ich auf einige Linien von Qt gestolpert und genauer auf QSqlQuery, die ich noch nie erlebt, bevorQSqlQuery Ctor oder prepare() Syntax, wenn mehr als 1 Stringliteral

QSqlQuery query(my_db); 
query.prepare("SELECT * FROM Result " 
       "WHERE Tag=:some_tag AND Name=:my_name"); 

ich durch die Syntax erstaunt war prepare("PlainOldCChain1" "PlainOldCChain2")

Welche Art von C++ Objekt ist "PlainOldCChain1" "PlainOldCChain2" (I bis zu einem gewissen Initialisiererliste hätte gedacht, aber ohne {,} ich ein wenig verloren bin. ich fand nur den Prototyp bool prepare(const QString & query))

Antwort

1

Angrenzend String li Terale mit Leerraum dazwischen sind einfach verkettet.

query.prepare("SELECT * FROM Result " 
       "WHERE Tag=:some_tag AND Name=:my_name"); 

ist genau das gleiche wie

query.prepare("SELECT * FROM Result WHERE Tag=:some_tag AND Name=:my_name"); 


Siehe auch: How does concatenation of two string literals work?

+0

OK Dank. Mein Fehler. Es macht Spaß, wie wir solche einfachen Dinge vergessen können [Another SO Post auf benachbarten Strings] (http://stackoverflow.com/questions/12120944/how-does-concatenation-of-two-string-literals-work) – NGI

+0

Einverstanden, das ist eine informativere Antwort, haben für zukünftige Referenz hinzugefügt. – acraig5075