рдПрдХ рдирдИ рдиреМрдХрд░реА (C ++) рдореЗрдВ, рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╢реИрд▓реА рдХреЛ рдмрджрд▓рдирд╛ рдерд╛, рдХреЛрдг рдХреЛрд╖реНрдардХ рдЦреЛрд▓рдирд╛ {рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдЙрд╕реА рд▓рд╛рдЗрди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдП, рдпрджрд┐ рдмреНрд▓реЙрдХ / рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреА рдЧрдИ рдереАред рдкрд╣рд▓реЗ рддреЛ рдкреБрд░рд╛рдиреА рдЖрджрддреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЕрдкреНрд░рд┐рдп рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣рдлреНрддреЗ рдореЗрдВ рдореБрдЭреЗ рдирдпрд╛ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рдЖрдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ - рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╢реИрд▓реА рдХреЗ рдЕрдиреНрдп рдкрд╣рд▓реВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрднреА рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рд▓рдЧрддреЗ рд╣реИрдВ? рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдЬрдбрд╝рддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╣реИред рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢реИрд▓реА рдХреЛ рдмрд╣реБрдд рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдо рдХрдо рд╣реИрдВред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реВрдЪрдирд╛рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд╣рд░ рдкрд╣рд▓реВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрджрдд рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдкреНрддрд╛рд╣ рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЫреЛрдЯреЗ рд╣реИрдВ, рддреЛ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЙрдкрдорд╛ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЛрдб рдЗрддрдирд╛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдорд╕реНрддрд┐рд╖реНрдХ рдУрд╡рд░рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдмрд╣реБрдд рдЕрдЪрд╛рдирдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред
рддрд░реНрдХрдпрд╣ "рдХреНрдпрд╛ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред" рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╢реИрд▓реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдХреЛрдб рдЫреЛрдЯрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рдЕрдзрд┐рдХ рдлрд┐рдЯ рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдХрдо рдмрд╛рд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдЕрдХреНрд╕рд░ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдорд╛рдЙрд╕ рдкрд░ рдЕрдкрдирд╛ рд╣рд╛рде рд▓реЗ рдЬрд╛рдПрдВ, рдпрд╛ рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ-рдкреАрдЫреЗ рдЪрд▓рд╛рдПрдВред рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рд╕рдмрд░реВрдЯреАрди рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рдХрд┐рддрдирд╛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛? рдХреНрдпрд╛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдпрд╛ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ?), рднрд▓реЗ рд╣реА рдпрд╣ рдЕрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдпрд╛ рджреЛ рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред (рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рднрдпрднреАрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рд╣рд░ рдЪреБрдиреМрддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░рд╛ рд╕реЗрдХрдВрдб! рдЖрдк рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░реЗрдВрдЧреЗ?)ред рдХрдо рдЯрд╛рдЗрдкрд┐рдВрдЧред рдПрдХ рдЫреЛрдЯрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рддреЗрдЬреА рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдбрд┐рд╕реНрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХрдо рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ), рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЖрджрд┐ред
рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЖрдпрд╛рдордирдИ рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рдкреИрдбрд┐рдВрдЧрд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбрд╛рд▓рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ: рдирдП рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рдорд╛рдкрди рдХреЛрдг рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдЦрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕реЗ рдЦрд╛рд▓реА рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрд╣ рд╕рдорд╛рдкрди рдмреНрд░реИрдХреЗрдЯ рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдбрд┐рдВрдЧ рдХреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдмреНрд▓реЙрдХ (рдлрд╝рдВрдХреНрд╢рди) рдЕрддрд┐рд░рд┐рдХреНрдд рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рднреА рдЖрддрд╛ рд╣реИред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдкреАрдЫреЗ рд╣рдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд┐рдХреНрдд рд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВред
return 1;
}
int f() {
return 0;
}
|
return 1;
}
int f() {
return 0;
}
| //Python
return 1
def f():
return 0
| //Python
return 1
def f():
return 0
|
тАФ , . , - тАФ , } ( тАФ ). . , !
: \}\n\n -> \}\n.
. , . , тАФ !
, . ( */) , . , , , */ . , , . , . //.
, .
Include guard++ pragma once,
include guard ifndef/define/endif . , 2-4 ( ), ( guard). , pragma once, , . , ( ) pragma once, . , // # pragma once.
, . :
\#pragma once\n\n -> \#pragma once\n
\n\n\#pragma once -> \n\#pragma once
тАФ . . ( ) .
int f()
{
return 0;
}
|
int f() {
return 0;
}
|
int f() {
return 0;
}
|
, : ? ? if ? - ? ? ?
: {\n\n -> {\n
, .
#include#include ( ) , ( pragma once). include forward declarations, тАФ , ( java-, include forward declarations). Forward declarations #include #. include/forward declarations тАФ forward declarations, , , .
, . , , .
., public/private , тАФ .
void f() {
int ret = 0;
LabelBegin:
...
goto LabelBegin;
};
|
class A {
public:
A();
~A() {}
};
|
class A {
public:
A();
~A() {}
};
|
? тАФ , (┬л ?┬╗) тАФ ┬лpublic:┬╗ , (┬л ? ...┬╗). ? , goto: ┬лpublic:┬╗ goto, , . , , . - ( ). , 320*240, , goto.
: , ? , . . .
. , тАФ ┬л - ? ┬╗.
:
VeryLongClassName* veryLongClassName = new VeryLongClassName(params);
:
auto veryLongClassName = new VeryLongClassName(params);
:
New<VeryLongClassName> shortName(params);
, New ( ).
New.h
template<class Class>
class New {
private:
Class*d;
public:
New() {
d = new Class();
}
template<typename T0>
New(T0 t0) {
d = new Class(t0);
}
template<typename T0, typename T1>
New(T0 t0, T1 t1) {
d = new Class(t0, t1);
}
template<typename T0, typename T1, typename T2>
New(T0 t0, T1 t1, T2 t2) {
d = new Class(t0, t1, t2);
}
template<typename T0, typename T1, typename T2, typename T3>
New(T0 t0, T1 t1, T2 t2, T3 t3) {
d = new Class(t0, t1, t2, t3);
}
virtual ~New() {}
Class* operator->() { return d; }
const Class* operator->()const { return d; }
operator Class* () { return d; }
operator const Class* ()const { return d; }
};
, , , . тАФ ++11 VS2012.
Java/Qt: ClassName, functionName. : function_name тАФ , , , ( ), . ┬л ┬╗ ( ) , ( ).
Tabs, !
habrahabr.ru/post/118208, :
Ctor::Ctor(): var1(1)
, var2(2)
, var3(3)
...
};
|
Ctor::Ctor(): var1(1),
var2(2),
var3(3)
...
};
|
, . ? , 1) тАФ , , , , 2) , . 1 тАФ , , тАФ . : , , , , . , , тАФ . : ┬л , ! , ! ! , тАФ , ? тАФ ! , тАФ ? , тАФ ! , , ? , ! , !┬╗. , .
- , ( ). ++ тАФ , ( linq C#). , !