рдХреНрдпреВрдЯреА рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓

рдХреНрдпреВрдЯреА рджреНрд╡рд╛рд░рд╛ рдХреНрдпреВрдЯреА рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓
рдирдорд╕реНрдХрд╛рд░ рд╣реНрд░рдЬреНрдЬрд┐рддрд▓реА!

рдЕрдм рдХреНрдпреВрдЯреА рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдиреЗ рд╕реЛрдЪрд╛: тАЬрдпрд╣ рдХреНрдпрд╛ рд╣реИ? Habr - рдЕрдЪрд╛рдирдХ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП! тАЭред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рдХрднреА-рдХрднреА рд╕рд░рд▓ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдРрд╕реЗ рд▓реЗрдЦ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдХреЛрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ рд╣рдорд╛рд░рд╛ рдХрд╛рдо рдЗрд╕реЗ рд╕рд╛рдл рд░рдЦрдирд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ рд╕рднреА рдХреНрдпреВрдЯреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ рдЬреЛ рдЖрджрд░реНрд╢ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рдмреЗрд╢рдХ рдХреНрдпреВрдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рд▓реЗрдЦ рд╣реИ - рдХреНрдпреВрдЯреА рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ ред рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рдХрдо рдореВрд▓реНрдпрд╡рд╛рди рд╕рд╛рдордЧреНрд░реА рд╣реИ ...


рдирдВрдмрд░ 1 рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рд╕рдВрд░реЗрдЦрдг


Qt рдореЗрдВ рдпрд╣ 4 рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИред рд▓реЗрдХрд┐рди рдареАрдХ 4, рдФрд░ рдареАрдХ рдПрдХ рдЕрдВрддрд░рд╛рд▓ред рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП \ t рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдмреБрд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рджрдВрдбрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред

рд╕рдВрдЦреНрдпрд╛ 2 рдХреЛ рдЕрдВрдХрд┐рдд рдХрд░реЗрдВред рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдШреЛрд╖рдгрд╛


рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╢реИрд▓реА рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ:


//  int a, b; char *c, *d; //  int height; int width; char *nameOfThis; char *nameOfThat; 

 //  short Cntr; char ITEM_DELIM = '\t'; //  short counter; char itemDelimiter = '\t'; 


3 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдЕрдВрддрд░рд╛рд▓


рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕реНрдкреЗрд╕ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрддреНрд╡ рд╣реИрдВред рдпрд╣ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рдмрд╣реБрдд рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред


 //  if (foo){ } //  if (foo) { } 

 char *x; const QString &myString; const char * const y = "hello"; MyClass *obj = new MyClass(this); bool ok; obj.report(1, &ok); 

 //  char* blockOfMemory = (char* ) malloc(data.size()); QTextStrem newOne(..); newOne<<"Hello"<<","<<" "<<"world"; //  char *blockOfMemory = reinterpret_cast<char *>(malloc(data.size())); QTextStrem newOne(..); newOne<< "Hello" << "," << " " << "world"; 


4 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдХреЛрд╖реНрдардХ


рдмреНрд░реИрдХреЗрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред рд╡реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рддрд░рд╣, рдХреЛрдб рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╢реЗрд░ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдирд┐рднрд╛рддреЗ рд╣реИрдВ


 static void foo(int g) { qDebug("foo: %i", g); } class Moo { public: Moo(); Moo(int a, int b); public slots: int getResult(); protected slots: void processNumbers(); private: int mineA; int mineB; int mineResult; }; 

 //  if (address.isEmpty()) { return false; } for (int i = 0; i < 10; ++i) { qDebug("%i", i); } //  if (address.isEmpty()) return false; for (int i = 0; i < 10; ++i) qDebug("%i", i); 

 //  while (a); if (expression) else // do something //  while (a) {} if (expression) { } else { // do something } 


 //  if (codec) { // do something } //  if (codec) { // do something } 

 //  if (address.isEmpty()) return false; else { qDebug("%s", qPrintable(address)); ++it; } //  if (address.isEmpty()) { return false; } else { qDebug("%s", qPrintable(address)); ++it; } //  if (a) if (b) ... else ... //  if (a) { if (b) ... else ... } 

 //  if (address.isEmpty() || !isValid() || !codec) return false; //  if (address.isEmpty() || !isValid() || !codec) { return false; } 


5 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдХреЛрд╖реНрдЯрдХ


рд╕рдореВрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
 //  if (a && b || c) if (a + b & c) //  if ((a && b) || c) if ((a + b) & c) 


6 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдПрдХрд╛рдзрд┐рдХ рдЪрдпрди рд╢рд░реНрддреЗрдВ рд╕реНрд╡рд┐рдЪ


рдмреЗрд╢рдХ, рдпреЗ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдХреЛрдбрд┐рдВрдЧ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреА рдУрд░ рд╕реЗ рдХрдИ рдЪрд░реНрдЪрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реИрдВ - рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, Qt рдХреЗрд╡рд▓ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:



 switch (myEnum) { case Value1: doSomething(); break; case Value2: case Value3: doSomethingElse(); // fall through default: defaultHandling(); break; } 


7 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рд▓рд╛рдЗрди рдмреНрд░реЗрдХ


рдЕрдХреНрд╕рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдмрдбрд╝реЗ рдореЙрдирд┐рдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╡рд╛рд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рд╡рд╣ рдЦреБрдж рдХреЛ рд╢рд╛рдВрддрд┐ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдХреЛрдб рдбреЗрд╡рд▓рдкрд░ рдкреЗрдЯреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд▓реИрдкрдЯреЙрдк рдХреЗ рд╕рд╛рде рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрддрд╛ рд╣реИ - рдкреВрд░реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдмрд╣реБрдд рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рдкрдардиреАрдпрддрд╛ рджреЛрд╖реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдореБрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП Qt рдХреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ?


 //  if (longExpression + otherLongExpression + otherOtherLongExpression) { } QMessageBox::information(d->someObjectWithLongName, tr("A long title for mesage"), tr("A very very very very very very long body", QMessageBox::Ok, QMessageBox::Cancel); //  if (longExpression + otherLongExpression + otherOtherLongExpression) { } QMessageBox::information(d->someObjectWithLongName, tr("A long title for mesage"), tr("A very very very very very very long body", QMessageBox::Ok, QMessageBox::Cancel); 

UPD: рдХреЛрдб рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рд╕рднреА рд▓рд╛рдЗрдиреЗрдВ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП

8 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдФрд░ `рдЖрднрд╛рд╕реА` рдХреАрд╡рд░реНрдб


рдЗрд╕ рдЖрд╕рди рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИ - рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ .h рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдбрд┐рдлрд╛рдЗрди рд╡рд┐рдзрд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ `рд╡рд░реНрдЪреБрдЕрд▓` рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИред
 //  class MyWidget : public QWidget { ... protected: virtual void keyPressEvent(QKeyEvent *); //  class MyWidget : public QWidget { ... protected: void keyPressEvent(QKeyEvent *); 


9 рдирдВрдмрд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рдЕрдкрд╡рд╛рдж


рдпрд╣ рдЕрднрд┐рдзрд╛рд░рдгрд╛ рд╣рдореЗрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдПрдХ рдирд┐рдпрдо рдХреЛ рддреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдмрджрд╕реВрд░рдд рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╕рднреА рдирд┐рдпрдореЛрдВ рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд┐ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдВ рдХреНрдпреВрдЯреА рдХреЛрдбрд┐рдВрдЧ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдХреЛрдб рдХреЛ рдмрджрд╕реВрд░рдд рдмрдирд╛рддреЗ рд╣реИрдВред

рд╕рдорд╛рдкрди


рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рдХреНрдпреВрдЯреА рдореЗрдВ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рд╢реИрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓реЗрдЦ рдХрд╛ рдЕрдВрдд рд╣реИред рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдХреНрдпреВрдЯреА рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХреЗ рд▓рд┐рдП рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдЗрди рдкреЛрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдордд рднреВрд▓рдирд╛ - рдЖрдк рдирд┐рдпрдореЛрдВ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ :)ред

рдореЗрд░реЗ рд▓рд┐рдП, рдХреНрдпреВрдЯреА рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╢реИрд▓реА рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╕рд╛рдл, рдЖрд░рд╛рдорджрд╛рдпрдХ, рд╕реБрдЦрдж рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рднреА рд╕рдордп рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рд╕реЗ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░реВрдВрдЧрд╛? рдмреЗрд╢рдХ, рд╣рд╛рдБ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕реЗ Qt рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╕рднреА рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдкрджреЛрдиреНрдирдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In150329/


All Articles