π C++μ μ£Όμ νΉμ§
- λ©ν°ν μ€νΉ νμ₯, λ°νμ μ±λ₯ ν₯μ, μμ ν μλ‘μ΄ κΈ°λ₯
- λ°νμ μ±λ₯ ν₯μ: λ¨Έν°νμ€νΉ λ©λͺ¨λ¦¬ λͺ¨λΈ, κ°λ³μΈμ₯ λ± λ¬Έλ² μ 곡, λ©λͺ¨λ¦¬μ κ³μ°μλ μ΅μ ν
- std:tr1 namespace lib std included
- C++14: C++11 λ²κ·Έ μμ μ½κ° κ³μ
- C++ μ체 νμ€ νμ€ λΌμ΄λΈλ¬λ¦¬ ν¬ν¨ STL(Standard Template Library) ν¬ν¨
- β ADT: κ°μ²΄ μμ± κΈ°λ₯ λμΆ κ³Όμ μ λͺ¨λΈλ§ μΆμν μ€κ³ λ¨κ³ Abstract Data Type C++ header file μ°μΆλ¬Ό
π Namespace
- using namespace std
namespace λ€μμ€νμ΄μ€λͺ
{
μ μΈλ΄μ©; (ν΄λμ€, ν¨μ, λ³μ λ±μ μ μ)
}
#include
using namespace std;
namespace first {
int value =1;
}
namespace second {
int value =2;
}
int main() {
cout << first::value;
cout << sencond::value;
}
- μλ£ν λ³μΉ λ§λ€κΈ°
- using [λ³μΉ] = [κΈ°μ‘΄μλ£ν]
- using block = double;
- using [λ³μΉ] = [κΈ°μ‘΄μλ£ν]
int main() {
using block = double;
using chain = int;
block eos = 123.40;
chain ether = 678;
}
- autoν λ³μ: μ΄κΈ°κ° νμ
- auto λ³μλͺ = μ΄κΈ°κ°(μμ λ³μ ν¨μ λͺ¨λ κ°λ₯)
- decltypeν: μ΄κΈ°κ° λΆνμ
- decltype(ν¨μf())[μ μΈν λ³μ]
- decltype(λ³μ)[μ μΈν λ³μ]
- decltype((λ³μ))[μ μΈν λ³μ]
π μΈλΌμΈ ν¨μ
- μΌλ° ν¨μ: λ©λͺ¨λ¦¬μ μ ν, 볡μ‘ν κ³Όμ
- μΈλΌμΈ ν¨μ: λ¨μ κ³Όμ λ체, ν¨μ μ μλΆκ° μ€νμ½λ λ체νμ¬ μ€ν μλ λΉ λ¦, λ¨μ μ ν¨μ μ μλΆκ° κΈΈλ©΄ λ³λ‘...
inline λ°νν ν¨μλͺ
(맀κ°λ³μ λͺ©λ‘);
- ex)
#include
using namespace std;
class Jacob
{
void Eat(int SteakWeight);
inline void EatInline(int SteakWeight);
};
int main(void) {
Jacob jacob;
jacob.Eat(500);
jacob.EatInline(500);
return 0;
}
void Jacob::Eat(int SteakWeight)
{
cout << "Eat()::Jacob is " << SteakWeight << "eat g steak" << endl;
}
inline void Jacob::EatInline(int SteakWeight) {
cout << "EatInline()::Jacob " << SteakWeight << "eat g steak" << endl;
}
π λλ€ ν¨μ
- lamda ν¨μ: μΈλΌμΈ ν¨μ like, also κ°λ μ±, C++11μ΄μ λΆν° μ¬μ© κ°λ₯
- [] [=] [&]
#include
using namespace std;
Class Jacob {
public:
void eat(int steakWeight);
inline void eatInline(int steakWeght) {
cout << "eatInline()::Jacob is" << steakWeight << "g steak" << endl;
}
};
int main(void)
{
Jacob jacob;
jacob.eat(1000);
jacob.eatInline(1000);
[](int steakWeight){cout << "eatLamda()::Jacob is eating" << steakWeight << "g steak" << endl;}(1000);
return 0;
}
void Jacob::eat(int steakWeight){
cout << "eat()::Jacob eat " << steakWeight << "g steak" << endl;
}