SlideShare a Scribd company logo
1 of 24
Download to read offline
more Effective C++
Chapter 1, 2
โ€˜๊ธฐ๋ณธ ๊ฐœ๋…๋“คโ€™ ๊ทธ๋ฆฌ๊ณ  โ€˜์—ฐ์‚ฐ์ž(Operators)โ€™
131039 ์‹ ๋™์ฐฌ
* -> & .
more effective c++ ๋ณด์‹ค ์ •๋„๋ฉด ์ด๊ฒŒ ๋‹จ์ˆœ ๊ธฐํ˜ธ๋กœ ๋ณด์ด์ง€๋Š” ์•Š๊ฒ ์ฃ 
ํฌ์ธํ„ฐ์™€ ์ฐธ์กฐ์ž ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค
๋‘˜ ๋‹ค
์ฃผ์†Œ ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด
์ฆ‰, ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ
๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์–ธ์ œ ๊ฐ™์€ ๊ฑธ ์ด์œ  ์—†์ด ๋‘ฟ๋˜๊ฐ€?
์ฃผ์†Œ์ธ ๋“ฏ ์ฃผ์†Œ ์•„๋‹Œ ์ฃผ์†Œ ๊ฐ™์€ ๋„ˆ
null reference
๊ฐ€ ๋‘˜์„ ํ™•์‹คํžˆ ๊ตฌ๋ถ„
์ฐธ์กฐ์ž(&) ๊ฐœ๋…์—์„  null reference๊ฐ€ ์—†๋‹ค!
์ฐธ์กฐ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์–ด์•ผ ๋งŒ ํ•จ
๋ฐ˜๋ฉด ํฌ์ธํ„ฐ(*)๋Š” nullptr๋กœ ์„ธํŒ… ๊ฐ€๋Šฅํ•˜๊ธฐ์—
๋ณ€์ˆ˜ ์ฐธ์กฐ ์˜์—ญ์— ๊ฐ์ฒด๊ฐ€ ํ•ญ์ƒ ์žˆ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์œผ๋ฉด ํฌ์ธํ„ฐ!
์ฐธ์กฐ์ž๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•จ
๋”ฐ๋ผ์„œ ์„ ์–ธ๋  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™” ๋˜์–ด์•ผ ํ•จ
string& rs; //์ด๊ฑด ์—๋Ÿฌ
string s(โ€œxyzzyโ€); //์ดํ•˜ ์ •์ƒ
string& rs = s;
ํฌ์ธํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ๋Š” ์•„๋‹˜
(๊ทธ๋ ‡๋‹ค๊ณ  ์ดˆ๊ธฐํ™”๋Š” ํ•˜๋Š” ๊ฒŒ ๋‹น์—ฐํ•œ ๊ฑฐ!!)
string *ps; //์—๋Ÿฌ๋Š” ์•ˆ๋‚œ๋‹ค
string *ps = nullptr; //์ผ๋ฐ˜์ ์ธ ์ดˆ๊ธฐํ™”
์•„๋‹ˆ ์ด๊ฑฐ ์ €๊ฑฐ ๊ฐ€๋ฆฌ๋Š” ๊ฒƒ ๋งŽ์€๋ฐ...
๊ทธ๋ƒฅ ํฌ์ธํ„ฐ๋กœ ํ†ต์ผํ•˜๋ฉด ์‰ฝ์ง€ ์•Š์„๊นŒ?
์‰ฝ๋‹ค๋Š” ๊ฒƒ์€ ๋ญ”๊ฐ€ trade-off ๋˜๋Š” ๊ฒƒ!
์„ฑ๋Šฅ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ์ฐธ์กฐ์ž
void printDouble(const double& rd)
{
cout << rd;
}
์ฐธ์กฐ์ž๋Š” null๊ฐ์ฒด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์œผ๋‹ˆ ์–ธ์ œ๋“  ํ†ต๊ณผ
cout ๊ตฌ๋ฌธ์—์„œ rd๋Š” double์„ ์ฐธ์กฐ๋ฅผ ๋ณด์žฅํ•œ๋‹ค
void printDouble(const double* pd)
{
if(pd){
cout << pd;
}
}
ํฌ์ธํ„ฐ๋Š” null ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌ
cout ๊ตฌ๋ฌธ์—์„œ pd๊ฐ€ null์ด๋ฉด ์œ ํšจํ•œ ์ƒํƒœ๊ฐ€ ์•„๋‹˜
์ฐธ์กฐ์ž๋Š”
โ€ข ์ฐธ์กฐ ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์„ ๋•Œ
โ€ข ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ฐ”๊พธ์–ด ์ฐธ์กฐํ•  ์ผ์ด ์—†์„ ๋•Œ
โ€ข ์—ฐ์‚ฐ์ž ๊ตฌํ˜„ํ•  ๋•Œ
ํฌ์ธํ„ฐ๋Š” ๋‚˜๋จธ์ง€ ์ „์ฒด
์—ฐ์‚ฐ์ž ํ•จ์ˆ˜ ๊ตฌํ˜„์—์„œ๋„ ๋ฐ˜๋“œ์‹œ ์ฐธ์กฐ์ž!
vector<int> v(10);
v[5] = 10;
์ด ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ operator [] ๊ฐ€ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด
์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” v[5] = 10;์„ ์‚ฌ์šฉ ๋ชปํ•จ
ํฌ์ธํ„ฐ ๋ฐ˜ํ™˜์‹œ *v[5] = 10;์œผ๋กœ ์จ์•ผ ํ•จ
v๊ฐ€ ํฌ์ธํ„ฐ์˜ ๋ฒกํ„ฐ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ˜ผ๋ž€ ๋ฐœ์ƒ
๋”ฐ๋ผ์„œ
C++์˜ ์บ์ŠคํŒ…
effective c++์— ์ด์–ด more effective c++์—์„œ๋„ ๊ฐ•์กฐ
C++์—๊ฒŒ C++์„... C ์Šคํƒ€์ผ์€ ๋ฒ„๋ฆฌ์ž!
โ€ข static_cast
โ€ข const_cast
โ€ข dynamic_cast
โ€ข reinterpret_cast
์‚ฌ์šฉ ๋ฐฉ๋ฒ•
์บ์ŠคํŠธ ํ˜•์‹ <๋Œ€์ƒ ํƒ€์ž…> (ํ‘œํ˜„์‹)
static_cast<double>(firstNumber)
static_cast
C ์Šคํƒ€์ผ ์บ์ŠคํŠธ์™€ ๋˜‘๊ฐ™์€ ์˜๋ฏธ์™€ ํ˜•๋ณ€ํ™˜
๊ธฐ๋ณธ์ด๋ผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋  ๋…€์„
๋” ์ด์ƒ์˜ ์„ค๋ช…์€...
const_cast ๋ถ€ํ„ฐ๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค
ํ‘œํ˜„์‹์˜ ์ƒ์ˆ˜์„ฑ(constness)์ด๋‚˜ ํœ˜๋ฐœ์„ฑ(volatileness)
๋ถ€์—ฌ ๋ฐ ์ œ๊ฑฐ ์ „์šฉ ์บ์ŠคํŠธ
์ƒ์† ๋“ฑ ์ด์™ธ์—์„œ๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ
class Widget{โ€ฆ};
class SpecialWidget: public Widget{โ€ฆ};
void update(SpecialWidget* psw);
SpecialWidget sw;
const SpecialWidget& csw = sw;
update(&csw); // ์˜ค๋ฅ˜
update(const_cast<SpecialWidget*>(&csw));
dynamic_cast
์ƒ์† ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๊ฑฐ๋‚˜
ํ•˜ํ–ฅ์‹œํ‚จ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ… ํ•  ๋•Œ ์‚ฌ์šฉ
ํด๋ž˜์Šค ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์ฐธ์กฐ์ž์˜ ํƒ€์ž…์„
ํŒŒ์ƒ ํด๋ž˜์Šค ๋˜๋Š” ํ˜•์ œ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜
class Widget{โ€ฆ};
class SpecialWidget: public Widget{โ€ฆ};
void update(SpecialWidget* psw);
update(dynamic_cast< SpecialWidget* >( pw ));
void updateViaRef( SpecialWidget& rsw );
updateViaRef( dynamic_cast< SpecialWidget& > (*pw) );
reinterpret_cast
ํ•จ์ˆ˜ ํฌ์ธํ„ฐ ํƒ€์ž…์„ ์„œ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐ ์‚ฌ์šฉ
ํ•˜์ง€๋งŒ... ๊ฐ•์ œ๋กœ ํ•˜๋Š” ๊ฑฐ๋ผ
์‚ฌ์šฉ ํ•˜์ง€ ๋ง์ž!
typedef void (*FuncPtr)();
FuncPtr funcPtrArray[10];
int doSomething();
funcPtrArray[0] = &doSomething; //์—๋Ÿฌ
funcPtrArray[0] = reinterpret_cast<FuncPtr>(&doSomething);
์ƒ์†์„ ๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์ง€๋งŒ,
์šฐ๋ฆฌ๋Š” ํ”ํžˆ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•ด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค
๋™์ ์œผ๋กœ ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ
์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ,
ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด์— ๋ฐฐ์—ด์ด ์žˆ๋‹ค๋ฉด ์ฃผ์˜๊ฐ€ ํ•„์š”
class Widget{โ€ฆ};
class SpecialWidget: public Widget{โ€ฆ};
void printWidgetArray(ostream& s, const Widget array[], int numElements)
{
for(int I = 0 ; i< numElements; ++i){
s<< array[i];
}
}
Widget WidgetArray[10];
printWidgetArray(cout, WidgetArray, 10);
SpecialWidget SWArray[10];
printWidgetArray(cout, SWArray, 10);
์ปดํŒŒ์ผ์—์„œ ์—๋Ÿฌ๋Š” ๋ถ„๋ช…ํžˆ ์•ˆ ๋‚œ๋‹ค!
๊ทธ๋Ÿฌ๋‚˜!
์ž˜ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์ ˆ๋Œ€ ์—†๋‹ค!
๊ฒฐ์ฝ” ์จ์„œ๋Š” ์•ˆ ๋œ๋‹ค
๋ฐฐ์—ด = ํฌ์ธํ„ฐ ์‹œ์ž‘ ์ 
๋ฐฐ์—ด + i = ๋ฉ”๋ชจ๋ฆฌ ์ด๋™
Widget๊ณผ SpecialWidget ๊ฐ์ฒด์˜ ํฌ๊ธฐ๊ฐ€ ๋™์ผํ•œ ๋ณด์žฅ์ด ์žˆ๋‚˜?
์ฆ‰, ์ด๋™ํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ๋™์ผํ•˜๋‹ค๋Š” ๋ณด์žฅ์ด ์žˆ๋‚˜?
์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ณด๋‹ค ํฌ๊ธฐ์—...
์ •์˜๋˜์ง€ ์•Š์€ ํ–‰๋™์ด ๋‚˜์˜ฌ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค
์ƒ์„ฑ / ์‚ญ์ œ ๋ชจ๋‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค!
์ƒ์„ฑ์ž๋„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋˜๋ฐ...
๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์•„๋‹Œ ํด๋ž˜์Šค์—์„œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” ๋ฌธ์ œ
class EquipmentPiece{
public:
EquipmentPiece(int IDNumber);
โ€ฆ
};
EquipmentPiece bestPieces[10];
EquipmentPiece* bestPieces = new EquipmentPiece[10];
//์ธ์ž ์—†์ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด ์ „๋ถ€ ์—๋Ÿฌ!
ํ•ด๊ฒฐ์ฑ…
โ€ข ๋ฐฐ์—ด์ด ์ •์˜๋œ ์œ„์น˜์—์„œ ์ƒ์„ฑ์ž ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฝ์ž…
โ€ข ๊ฐ์ฒด์˜ ๋ฐฐ์—ด ๋Œ€์‹  ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ํฌ์ธํ„ฐ์— ๊ฐ์ฒด ์ƒ์„ฑ
(์ธ์ž๋Š” ์ „๋‹ฌํ•˜๊ณ )
โ€ข placement new(๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new) ์‚ฌ์šฉ
Placement new
๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์นœํ•˜์ง€ ์•Š๋‹ค
+
๊ฐ์ฒด ์‚ญ์ œ์‹œ ์†Œ๋ฉธ์ž๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ๋จ
ํ•˜์ง€๋งŒ ๋น„๊ฐ€๊ณต ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ ํƒ์›” void* rawMemory = operator new[](10*sizeof(EquipmentPiece));
EquipmentPiece* bestPieces = static_cast<EquipmentPiece*>(rawMemory);
for(int i =0; i<10; ++i)
{
new(bestPieces+i) EquipmentPiece(ID Number);
}
//์‚ญ์ œ์‹œ
for(int i =9 ; I >= 0 ; --i)
{
bestPieces[i].~EquipmentPiece();
}
operator delete[](rawMemory);
๋งˆ์ง€๋ง‰์— ์™œ?
delete[] bestPieces๊ฐ€ ์•„๋‹Œ๊ฐ€์š”?
newํ•˜๊ณ  ์„ธํŠธ๋กœ ์“ฐ๋žฌ๋Š”๋ฐ...
new[] ์—ฐ์‚ฐ์ž ์˜€์œผ๋ฉด delete[]์™€ ์„ธํŠธ๋กœ ์‚ฌ์šฉ๋จ
ํ•˜์ง€๋งŒ replacement new์—์„œ ์‚ฌ์šฉํ•˜๋Š” new๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹˜
operator new[] ์ด๋ฏ€๋กœ operator delete[]์™€ ์„ธํŠธ!
๊ธฐ๋ณธ ์ƒ์„ฑ์ž์˜ ๋ถ€์žฌ๋Š” ํ…œํ”Œ๋ฆฟ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—๋„ ์•…์˜ํ–ฅ
์ปจํ…Œ์ด๋„ˆ ํด๋ž˜์Šค ๊ฐ์ฒดํ™” ๊ณผ์ •์—์„œ
์ปดํ”Œ๋ฆฟ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋Š” ํƒ€์ž…์ด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•จ
๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์“ฐ๋ผ๋Š” ๊ฑธ๊นŒ ๋ง๋ผ๋Š” ๊ฑธ๊นŒ?
๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋Š” ์—†์„ ์ˆ˜ ์—†๋‹ค
-> ๋ฐ˜๋“œ์‹œ ์จ์•ผ ํ•œ๋‹ค
๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋กœ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ผ์„ ๋‹ค ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ
-> ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด ์‚ฌ์šฉ
operator new[], operator delete[]?
C++์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
๋‹ค์–‘ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉ์ž์˜ ์ž…๋ง›์— ๋งž๊ฒŒ
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ
์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
๋ฌผ๋ก  ๋‹ค ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ ...
์—ฌ๊ธฐ 12๊ฐœ์˜ ์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ!
์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์œ„ํ•ด ์—ฐ์‚ฐ์ž๋ฅผ ๊นŒ๋ณด๋ฉด
์„ฑ๋Šฅ ์ด์Šˆ๋„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ๋ถ„์€ for๋ฌธ์„ ์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”?
1. for(int i=0 ; i <10 ; i++ )
2. for(int i=0 ; i <10 ; ++i )
๋‹ค๋ฅธ ์ฑ…์—์„œ๋Š” ๋‹ค๋“ค 1๋ฒˆ์„ ์“ฐ๋˜๋ฐ...
//์ „์œ„ ์—ฐ์‚ฐ
UPInt& UPInt::operator++()
{
*this += 1;
return *this;
}
//ํ›„์œ„ ์—ฐ์‚ฐ, ์ „๋‹ฌ ์ธ์ž int๋Š” ๋‘˜์˜ ์ฐจ์ด๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž„
const UPInt UPInt::operator++(int)
{
const UPInt oldValue = *this;
++(*this);
return oldValue;
}
๋ฐ”๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ / ์„ ์–ธ ๊ณผ์ •์ด ์žˆ๋Š” ๊ฒƒ
๋ญ๊ฐ€ ๋” ์ข‹์„์ง€ ๊ฐ์ด ์˜ค์‹œ๋‚˜์š”?
C++์˜ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜
์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ๊ธฐ๋Šฅ์„ ํ•˜๊ธฐ ์žˆ๊ธฐ ๋•Œ๋ฌธ!
(๋‹จ์ผ ์ผ์ž ์ƒ์„ฑ์ž/ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž)
์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€
ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์˜๋„์™€ ์ƒ๊ด€ ์—†์ด ์•Œ์•„์„œ ์ง„ํ–‰ํ•จ
ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ณ„ํš์น˜ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ƒ„
๋”ฐ๋ผ์„œ ๋˜‘๊ฐ™์€ ์ผ์„ ํ•˜๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ–๋Š” ํ•จ์ˆ˜๋กœ
์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•ด์•ผ ํ•จ
class Rational{
public:
Rational(int numerator = 0, int denominator = 1);
operator double() const;
};
Rational r(1,2);
cout<<r;
//์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ถ„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ์ค„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—
//์•Œ์•„์„œ double๋กœ ๋งŒ๋“ค์–ด์„œ 0.5๋กœ ์ถœ๋ ฅ
์ƒ์„ฑ์ž๋„ ์—ฐ์‚ฐ์ž์ด๊ธฐ ๋•Œ๋ฌธ์—...
์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์ด ์ถฉ๋ถ„ํžˆ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ
์ฆ‰ ์•”์‹œ์ ์ธ ๋ณ€ํ™”๋ฅผ ๋งˆ์Œ๊ป ๋‚ ๋›ฐ๊ฒŒ ๋‘˜ ์ˆ˜๋ก
๊ฐœ๋ฐœ์ž๋Š” ํž˜๋“ค์–ด ์งˆ ์ˆ˜ ๋ฐ–์— ์—†์Œ
์ด๋Ÿฐ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋ ๊นŒ์š”?
โ€ข ๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์Œ
(์ด๊ฑด ๋งค๋ฒˆ ํ•  ์ˆ˜ ์—†์Œ)
โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋„๋ก ํ•จ
explicit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ
template<class T>
class Array{
public:
โ€ฆ
explicit Array(int size);
โ€ฆ
};
Array<int> a(10);
Array<int> b(10);
if(a == b[i])...//์—๋Ÿฌ๋ฐœ์ƒ
์•ž์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‹ˆ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์• ์šฉํ•ฉ์‹œ๋‹ค?!
&&, ||, .์— ๋Œ€ํ•ด ์˜ค๋ฒ„๋กœ๋”ฉ ํ•˜๋ฉด C++์˜ ๊ธฐ๋Šฅ์„ ์ฃฝ์ด๊ธฐ๋„ ํ•จ
๋‹จ์ถ• ํ‰๊ฐ€(short-circuit)์ฒ˜๋ฆฌ๊ฐ€ ์‚ฌ๋ผ์ง...
char* p;
if((p != 0) && (strlen(p) > 10))
โ€ฆ
์ฝ”๋“œ์—์„œ p๊ฐ€ null์ด์–ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค
์ด๋ฏธ p!= 0์—์„œ ๋‹จ์ถ• ํ‰๊ฐ€๊ฐ€ ์ผ์–ด๋‚˜
strlen(p)๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!
์˜ค๋ฒ„๋กœ๋”ฉํ•˜๋ฉด?!
ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ตฌ์กฐ๊ฐ€ ๋˜์–ด ๋ฒ„๋ ค ๋‹จ์ถ• ํ‰๊ฐ€๋Š” ์‚ฌ๋ผ์ง„๋‹ค.
strlen(p)๊ฐ€ ์‹คํ–‰๋  ์ˆ˜๋„ ์žˆ๋‹ค = ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜
more effective C++ ์‹œ์ž‘

More Related Content

What's hot

์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
quxn6
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ต์„ฑ ์กฐ
ย 
M1 2 1
M1 2 1M1 2 1
M1 2 1
nexthw
ย 
Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4
์—ฐ์šฐ ๊น€
ย 

What's hot (20)

More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
ย 
effective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌeffective c++ chapter 3~4 ์ •๋ฆฌ
effective c++ chapter 3~4 ์ •๋ฆฌ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
์ดํŽ™ํ‹ฐ๋ธŒ C++ ๊ณต๋ถ€
ย 
Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2Effective c++ ์ •๋ฆฌ 1~2
Effective c++ ์ •๋ฆฌ 1~2
ย 
Effective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝEffective c++ chapter 1,2 ์š”์•ฝ
Effective c++ chapter 1,2 ์š”์•ฝ
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ 5,6 ์žฅ ์Šคํ„ฐ๋””
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
์ดํŽ™ํ‹ฐ๋ธŒ C++ ์Šคํ„ฐ๋””
ย 
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
์ดํŽ™ํ‹ฐ๋ธŒ C++ (7~9)
ย 
Effective c++ 1,2
Effective c++ 1,2Effective c++ 1,2
Effective c++ 1,2
ย 
Effective C++ Chaper 1
Effective C++ Chaper 1Effective C++ Chaper 1
Effective C++ Chaper 1
ย 
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 1,2์žฅ ์Šคํ„ฐ๋””
ย 
M1 2 1
M1 2 1M1 2 1
M1 2 1
ย 
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌEffective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
Effective c++ ์ฑ•ํ„ฐ 2 ์ •๋ฆฌ
ย 
Effective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshinEffective c++ chapter1 2_dcshin
Effective c++ chapter1 2_dcshin
ย 
Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6Effective c++ ์ •๋ฆฌ chapter 6
Effective c++ ์ •๋ฆฌ chapter 6
ย 
Effective c++chapter3
Effective c++chapter3Effective c++chapter3
Effective c++chapter3
ย 
Effective c++chapter4
Effective c++chapter4Effective c++chapter4
Effective c++chapter4
ย 
Effective c++chapter8
Effective c++chapter8Effective c++chapter8
Effective c++chapter8
ย 
Effective c++chapter1 and2
Effective c++chapter1 and2Effective c++chapter1 and2
Effective c++chapter1 and2
ย 
Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4Effective c++ ์ •๋ฆฌ chapter 4
Effective c++ ์ •๋ฆฌ chapter 4
ย 

Viewers also liked

NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆNDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
Byunglim Park
ย 
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
KwangSam Kim
ย 
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
Mingu Heo
ย 
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
Hoyoung Choi
ย 
THE_NPCMASTER_PUBLIC
THE_NPCMASTER_PUBLICTHE_NPCMASTER_PUBLIC
THE_NPCMASTER_PUBLIC
khalbora
ย 
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
Younger Jo
ย 
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
Young Keun Choe
ย 
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
tcaesvk
ย 
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
Kloud Kim
ย 

Viewers also liked (20)

NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆNDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
NDC14 ์ฐฝ์—…์„๊ฒฐ์ •ํ•˜๊ธฐ์ „3๊ฐ€์ง€์ž๊ธฐ๊ฒ€์ฆ
ย 
NDC2014 ์ฝ”์ธ๋ฐ•์Šค@NDC ์น˜ํ‚จ๋Ÿฝํฌ์ŠคํŠธ๋ชจํ…œ
NDC2014 ์ฝ”์ธ๋ฐ•์Šค@NDC ์น˜ํ‚จ๋Ÿฝํฌ์ŠคํŠธ๋ชจํ…œNDC2014 ์ฝ”์ธ๋ฐ•์Šค@NDC ์น˜ํ‚จ๋Ÿฝํฌ์ŠคํŠธ๋ชจํ…œ
NDC2014 ์ฝ”์ธ๋ฐ•์Šค@NDC ์น˜ํ‚จ๋Ÿฝํฌ์ŠคํŠธ๋ชจํ…œ
ย 
HTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ
HTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐHTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ
HTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ
ย 
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
NDC 2014) ๋ณ„๋ฐ”๋žŒ์˜ ๊ธฐ๋ฌ˜ํ•œ ๋ชจํ—˜ 1991-2014
ย 
[NDC 14] '๋ฏธ์ฟ ๋ฏธ์ฟ ํ•˜๊ฒŒ ํ•ด์ค„๊ฒŒ' - MMD MV ์ œ์ž‘ ์‚ฌ๋ก€์™€ ๋งค๋ ฅ์ ์ธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜
[NDC 14] '๋ฏธ์ฟ ๋ฏธ์ฟ ํ•˜๊ฒŒ ํ•ด์ค„๊ฒŒ' - MMD MV ์ œ์ž‘ ์‚ฌ๋ก€์™€ ๋งค๋ ฅ์ ์ธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜[NDC 14] '๋ฏธ์ฟ ๋ฏธ์ฟ ํ•˜๊ฒŒ ํ•ด์ค„๊ฒŒ' - MMD MV ์ œ์ž‘ ์‚ฌ๋ก€์™€ ๋งค๋ ฅ์ ์ธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜
[NDC 14] '๋ฏธ์ฟ ๋ฏธ์ฟ ํ•˜๊ฒŒ ํ•ด์ค„๊ฒŒ' - MMD MV ์ œ์ž‘ ์‚ฌ๋ก€์™€ ๋งค๋ ฅ์ ์ธ ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜
ย 
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
[NDC14] A Mass of Dead ์ŠคํŒ€ ์ž…์„ฑ ์„ฑ๊ณต๊ธฐ
ย 
์ง„์„ ์›… ์œ ์ €์ˆ˜๋งŒํผ๋‹ค์–‘ํ•œ์„ฌ์„๋งŒ๋“ค์ž ๊ณต๊ฐœ์šฉ
์ง„์„ ์›… ์œ ์ €์ˆ˜๋งŒํผ๋‹ค์–‘ํ•œ์„ฌ์„๋งŒ๋“ค์ž ๊ณต๊ฐœ์šฉ์ง„์„ ์›… ์œ ์ €์ˆ˜๋งŒํผ๋‹ค์–‘ํ•œ์„ฌ์„๋งŒ๋“ค์ž ๊ณต๊ฐœ์šฉ
์ง„์„ ์›… ์œ ์ €์ˆ˜๋งŒํผ๋‹ค์–‘ํ•œ์„ฌ์„๋งŒ๋“ค์ž ๊ณต๊ฐœ์šฉ
ย 
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
[NDC 14] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด๋‹ฌ๋ผ๋‹ˆ - &lt;์•ผ์ƒ์˜>์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๊ตฌํ˜„
ย 
THE_NPCMASTER_PUBLIC
THE_NPCMASTER_PUBLICTHE_NPCMASTER_PUBLIC
THE_NPCMASTER_PUBLIC
ย 
[NDC14] ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์˜ ๋‹ค์Œ ํ˜์‹  - ์•ผ์ƒ์˜ ๋•… ๋“€๋ž‘๊ณ ์˜ ๊ณ„์‚ฐ ํ”„๋กœ์„ธ์Šค ์ค‘์‹ฌ ๊ฒŒ์ž„ ๋””์ž์ธ
[NDC14] ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์˜ ๋‹ค์Œ ํ˜์‹  - ์•ผ์ƒ์˜ ๋•… ๋“€๋ž‘๊ณ ์˜ ๊ณ„์‚ฐ ํ”„๋กœ์„ธ์Šค ์ค‘์‹ฌ ๊ฒŒ์ž„ ๋””์ž์ธ[NDC14] ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์˜ ๋‹ค์Œ ํ˜์‹  - ์•ผ์ƒ์˜ ๋•… ๋“€๋ž‘๊ณ ์˜ ๊ณ„์‚ฐ ํ”„๋กœ์„ธ์Šค ์ค‘์‹ฌ ๊ฒŒ์ž„ ๋””์ž์ธ
[NDC14] ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์˜ ๋‹ค์Œ ํ˜์‹  - ์•ผ์ƒ์˜ ๋•… ๋“€๋ž‘๊ณ ์˜ ๊ณ„์‚ฐ ํ”„๋กœ์„ธ์Šค ์ค‘์‹ฌ ๊ฒŒ์ž„ ๋””์ž์ธ
ย 
NDC14 ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ ๊ตฌ์ถ•/์šด์˜ ๋ถ„ํˆฌ๊ธฐ
NDC14 ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ ๊ตฌ์ถ•/์šด์˜ ๋ถ„ํˆฌ๊ธฐNDC14 ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ ๊ตฌ์ถ•/์šด์˜ ๋ถ„ํˆฌ๊ธฐ
NDC14 ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ ๊ตฌ์ถ•/์šด์˜ ๋ถ„ํˆฌ๊ธฐ
ย 
[NDC14] (๊ณต๊ฐœ์šฉ)๊ฒŒ์ž„ QA์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŒ… ๊ธฐ๋ฒ•๊ณผ ํŒจํ„ด ํ™œ์šฉ_ํ™ฉ์šฐ๋žŒ
[NDC14] (๊ณต๊ฐœ์šฉ)๊ฒŒ์ž„ QA์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŒ… ๊ธฐ๋ฒ•๊ณผ ํŒจํ„ด ํ™œ์šฉ_ํ™ฉ์šฐ๋žŒ[NDC14] (๊ณต๊ฐœ์šฉ)๊ฒŒ์ž„ QA์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŒ… ๊ธฐ๋ฒ•๊ณผ ํŒจํ„ด ํ™œ์šฉ_ํ™ฉ์šฐ๋žŒ
[NDC14] (๊ณต๊ฐœ์šฉ)๊ฒŒ์ž„ QA์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŒ… ๊ธฐ๋ฒ•๊ณผ ํŒจํ„ด ํ™œ์šฉ_ํ™ฉ์šฐ๋žŒ
ย 
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
[NDC14] ํƒ€์ž„๋ผ์ธ ๋˜์ „ ํฌ์ŠคํŠธ๋ชจํ…œ - ์Šค๋งˆํŠธํฐ ์‹œ๋Œ€์˜ ๋จธ๋“œ๊ฒŒ์ž„๊ณผ SNS
ย 
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
NDC14 - ์—„๋งˆ์™€ ๋ˆ„๋‚˜๊ฐ€ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๋Š” ๋ฒ• : [์—๋ธŒ๋ฆฌํƒ€์šด for kakao] ์„œ๋น„์Šค ํฌ์ŠคํŠธ ๋ชจํ…€
ย 
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
NDC 2014, ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์—ด์˜ ์„ธ๊ณ„
ย 
NDC 2014 [48์‹œ๊ฐ„ ๋งŒ์— ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ: '์ˆ˜์ค์€ ๋ฉ”๋‘์‚ฌ' ํฌ์ŠคํŠธ๋ชจํ…œ๊ณผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ ์™•๋„]
NDC 2014 [48์‹œ๊ฐ„ ๋งŒ์— ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ: '์ˆ˜์ค์€ ๋ฉ”๋‘์‚ฌ' ํฌ์ŠคํŠธ๋ชจํ…œ๊ณผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ ์™•๋„]NDC 2014 [48์‹œ๊ฐ„ ๋งŒ์— ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ: '์ˆ˜์ค์€ ๋ฉ”๋‘์‚ฌ' ํฌ์ŠคํŠธ๋ชจํ…œ๊ณผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ ์™•๋„]
NDC 2014 [48์‹œ๊ฐ„ ๋งŒ์— ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ: '์ˆ˜์ค์€ ๋ฉ”๋‘์‚ฌ' ํฌ์ŠคํŠธ๋ชจํ…œ๊ณผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์˜ ์™•๋„]
ย 
[ NDC 14 ] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด์ฃผ์„ธ์š” - [ ์•ผ์ƒ์˜ ๋•… : ๋“€๋ž‘๊ณ  ] ์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๋””์ž์ธ
[ NDC 14 ] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด์ฃผ์„ธ์š” - [ ์•ผ์ƒ์˜ ๋•… : ๋“€๋ž‘๊ณ  ] ์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๋””์ž์ธ [ NDC 14 ] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด์ฃผ์„ธ์š” - [ ์•ผ์ƒ์˜ ๋•… : ๋“€๋ž‘๊ณ  ] ์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๋””์ž์ธ
[ NDC 14 ] ๊ฐ€์ฃฝ ์žฅํ™”๋ฅผ ๋จน๊ฒŒ ํ•ด์ฃผ์„ธ์š” - [ ์•ผ์ƒ์˜ ๋•… : ๋“€๋ž‘๊ณ  ] ์˜ ์ž์œ ๋„ ๋†’์€ ์•„์ดํ…œ ์‹œ์Šคํ…œ ๋””์ž์ธ
ย 
๋ฐ”๋ผ๋Š” ๋Œ€๋กœ ๋ผ์ดํ„ฐ๊ฐ€ ์“ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค ๋””๋ ‰ํŒ… ๊ธฐ๋ฒ•
๋ฐ”๋ผ๋Š” ๋Œ€๋กœ ๋ผ์ดํ„ฐ๊ฐ€ ์“ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค ๋””๋ ‰ํŒ… ๊ธฐ๋ฒ•๋ฐ”๋ผ๋Š” ๋Œ€๋กœ ๋ผ์ดํ„ฐ๊ฐ€ ์“ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค ๋””๋ ‰ํŒ… ๊ธฐ๋ฒ•
๋ฐ”๋ผ๋Š” ๋Œ€๋กœ ๋ผ์ดํ„ฐ๊ฐ€ ์“ฐ๊ฒŒ ๋งŒ๋“œ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค ๋””๋ ‰ํŒ… ๊ธฐ๋ฒ•
ย 
์‚ฌ์„ค ์„œ๋ฒ„๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•๋“ค (ํ”„๋ฆฌ์„ญ, ๋”์ด์ƒ์€ Naver)
์‚ฌ์„ค ์„œ๋ฒ„๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•๋“ค (ํ”„๋ฆฌ์„ญ, ๋”์ด์ƒ์€ Naver)์‚ฌ์„ค ์„œ๋ฒ„๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•๋“ค (ํ”„๋ฆฌ์„ญ, ๋”์ด์ƒ์€ Naver)
์‚ฌ์„ค ์„œ๋ฒ„๋ฅผ ๋ง‰๋Š” ๋ฐฉ๋ฒ•๋“ค (ํ”„๋ฆฌ์„ญ, ๋”์ด์ƒ์€ Naver)
ย 
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
[NDC 14] ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ์—์„œ ๊ฐœ๋ฐœPM(ํŒ€์žฅ)์˜ ์—ญํ• ๊ณผ ์ฑ…์ž„-๊น€์˜์›…
ย 

Similar to More effective c++ chapter1 2_dcshin

The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒดThe C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
ํ•ด๊ฐ•
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
Sehyeon Nam
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Dong Chan Shin
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
ํฅ๋ฐฐ ์ตœ
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
Dong Chan Shin
ย 
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
KyeongWon Koo
ย 
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ W.E.L.C.
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ  W.E.L.C.์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ  W.E.L.C.
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ W.E.L.C.
Ryan Park
ย 

Similar to More effective c++ chapter1 2_dcshin (20)

More effective c++ chapter1,2
More effective c++ chapter1,2More effective c++ chapter1,2
More effective c++ chapter1,2
ย 
Effective c++ Chapter1,2
Effective c++ Chapter1,2Effective c++ Chapter1,2
Effective c++ Chapter1,2
ย 
The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒดThe C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
The C++ Programming Language 5์žฅ ํฌ์ธํ„ฐ, ๋ฐฐ์—ด, ๊ตฌ์กฐ์ฒด
ย 
Ec++ 3,4 summary
Ec++ 3,4 summaryEc++ 3,4 summary
Ec++ 3,4 summary
ย 
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
[1B1]์Šค์œ„ํ”„ํŠธํ”„๋กœ๊ทธ๋ž˜๋ฐ์–ธ์–ด
ย 
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌEffective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
Effective c++ chapter5 6_ 131039 ์‹ ๋™์ฐฌ
ย 
Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ Effective c++ 1~8์žฅ
Effective c++ 1~8์žฅ
ย 
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌModern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
Modern C++ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ CPP11/14 ํ•ต์‹ฌ
ย 
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 5์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 5์žฅ ์Šคํ„ฐ๋””๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 5์žฅ ์Šคํ„ฐ๋””
๋ชจ์–ด ์ดํŽ™ํ‹ฐ๋ธŒ c++ 5์žฅ ์Šคํ„ฐ๋””
ย 
ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉํ•œ ๋ชจ๋˜ C++
ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉํ•œ ๋ชจ๋˜ C++ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉํ•œ ๋ชจ๋˜ C++
ํฌํŠธํด๋ฆฌ์˜ค์—์„œ ์‚ฌ์šฉํ•œ ๋ชจ๋˜ C++
ย 
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
๋ชจ์–ด์ดํŽ™ํ‹ฐ๋ธŒ C++ 3,4์žฅ ์˜ˆ์™ธ, ํšจ์œจ ์Šคํ„ฐ๋””
ย 
React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ - ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์•„์„œ ํ˜ผ์ž์„œ ์‚ฝ์งˆํ–ˆ๋‹ค.
React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ - ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์•„์„œ ํ˜ผ์ž์„œ ์‚ฝ์งˆํ–ˆ๋‹ค.React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ - ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์•„์„œ ํ˜ผ์ž์„œ ์‚ฝ์งˆํ–ˆ๋‹ค.
React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜ - ์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์•„์„œ ํ˜ผ์ž์„œ ์‚ฝ์งˆํ–ˆ๋‹ค.
ย 
Boost๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜๋‚ด๋ถ€๊ตฌ์กฐ 20151111 ์„œ์ง„ํƒ
Boost๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜๋‚ด๋ถ€๊ตฌ์กฐ 20151111 ์„œ์ง„ํƒBoost๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜๋‚ด๋ถ€๊ตฌ์กฐ 20151111 ์„œ์ง„ํƒ
Boost๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜๋‚ด๋ถ€๊ตฌ์กฐ 20151111 ์„œ์ง„ํƒ
ย 
Effective cpp
Effective cppEffective cpp
Effective cpp
ย 
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ตMore effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
More effective c++ chapter4 แ„‹แ…ตแ„’แ…ฎ แ„’แ…กแ†ผแ„†แ…ฉแ†จ 29แ„แ…กแ„Œแ…ต
ย 
[C++ Korea] Effective Modern C++ Study item14 16 +์‹ ์ดŒ
[C++ Korea] Effective Modern C++ Study item14 16 +์‹ ์ดŒ[C++ Korea] Effective Modern C++ Study item14 16 +์‹ ์ดŒ
[C++ Korea] Effective Modern C++ Study item14 16 +์‹ ์ดŒ
ย 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
ย 
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
[0618๊ตฌ๊ฒฝ์›]์ดˆ๋ณด ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ c++
ย 
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ W.E.L.C.
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ  W.E.L.C.์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ  W.E.L.C.
์นด์‚ฌ ๊ณต๊ฐœ์„ธ๋ฏธ๋‚˜1ํšŒ W.E.L.C.
ย 
Visual studio 2010
Visual studio 2010Visual studio 2010
Visual studio 2010
ย 

More from Dong Chan Shin

Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
Dong Chan Shin
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Dong Chan Shin
ย 
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผแ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
Dong Chan Shin
ย 
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usabilityRTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
Dong Chan Shin
ย 
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จProactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
Dong Chan Shin
ย 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4
Dong Chan Shin
ย 
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ตC++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
Dong Chan Shin
ย 

More from Dong Chan Shin (15)

C# / .NET Framework๋กœ ๋ฏธ๋ž˜ ๋ฐฅ๊ทธ๋ฆ‡์„ ์ฑ™๊ฒจ๋ณด์ž (Basic)
C# / .NET Framework๋กœ ๋ฏธ๋ž˜ ๋ฐฅ๊ทธ๋ฆ‡์„ ์ฑ™๊ฒจ๋ณด์ž (Basic)C# / .NET Framework๋กœ ๋ฏธ๋ž˜ ๋ฐฅ๊ทธ๋ฆ‡์„ ์ฑ™๊ฒจ๋ณด์ž (Basic)
C# / .NET Framework๋กœ ๋ฏธ๋ž˜ ๋ฐฅ๊ทธ๋ฆ‡์„ ์ฑ™๊ฒจ๋ณด์ž (Basic)
ย 
User experience Design์— ํ™œ์šฉ๋˜๋Š” แ„€แ…กแ†จแ„Œแ…ฉแ†ผ ์šฉ์–ด แ„Œแ…ฅแ†ผแ„…แ…ต
User experience Design์— ํ™œ์šฉ๋˜๋Š” แ„€แ…กแ†จแ„Œแ…ฉแ†ผ ์šฉ์–ด แ„Œแ…ฅแ†ผแ„…แ…ตUser experience Design์— ํ™œ์šฉ๋˜๋Š” แ„€แ…กแ†จแ„Œแ…ฉแ†ผ ์šฉ์–ด แ„Œแ…ฅแ†ผแ„…แ…ต
User experience Design์— ํ™œ์šฉ๋˜๋Š” แ„€แ…กแ†จแ„Œแ…ฉแ†ผ ์šฉ์–ด แ„Œแ…ฅแ†ผแ„…แ…ต
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_5_waste of time shoveling
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_5_waste of time shovelingProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_5_waste of time shoveling
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_5_waste of time shoveling
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_4_network_memory management
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_4_network_memory managementProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_4_network_memory management
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_4_network_memory management
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_3_แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…งแ„…แ…ก แ„‹แ…ฎแ†ทแ„Œแ…ตแ†จแ„‹แ…ง
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
ย 
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผแ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
แ„†แ…ฉแ†ฏแ„‹แ…ตแ†ธ แ„‹แ…ตแ†ซแ„Œแ…ตแ„€แ…ฉแ†ผแ„‡แ…ขแ†จ แ„‘แ…ณแ„…แ…ขแ„€แ…ณแ„‚แ…กแ†ซแ„แ…ณแ„‡แ…ฅแ†ธแ„Žแ…ตแ†จ แ„‰แ…ณแ„แ…ฉแ„…แ…ตแ„แ…ฆแ†ฏแ„…แ…ตแ†ผ
ย 
Project anarchyแ„…แ…ฉ 3 d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_1
Project anarchyแ„…แ…ฉ 3 d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_1Project anarchyแ„…แ…ฉ 3 d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_1
Project anarchyแ„…แ…ฉ 3 d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_1
ย 
Unreal summit 2014 ๋‹ค์‹œ ๋ณด๊ธฐ
Unreal summit 2014 ๋‹ค์‹œ ๋ณด๊ธฐUnreal summit 2014 ๋‹ค์‹œ ๋ณด๊ธฐ
Unreal summit 2014 ๋‹ค์‹œ ๋ณด๊ธฐ
ย 
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usabilityRTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
RTS แ„€แ…ฆแ„‹แ…ตแ†ท uiแ„‹แ…ฆแ„‰แ…ฅ แ„’แ…ชแ†จแ„‹แ…ตแ†ซ แ„’แ…กแ†ฏ แ„‰แ…ฎ แ„‹แ…ตแ†ปแ„‚แ…ณแ†ซ rts แ„€แ…ฆแ„‹แ…ตแ†ท usability
ย 
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จProactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
Proactor/Reactor Server io แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ
ย 
More effective c++ chapter3 4
More effective c++ chapter3 4More effective c++ chapter3 4
More effective c++ chapter3 4
ย 
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ตC++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
C++ try catch แ„‹แ…ฅแ„ƒแ…ตแ„แ…กแ„Œแ…ต แ„€แ…กแ„‡แ…ชแ†ปแ„‚แ…ต
ย 
Dxแ„€แ…ชแ†ซแ„…แ…งแ†ซ alignment แ„Œแ…ฅแ†ผแ„…แ…ต by แ„‹แ…ณแ†ซแ„Œแ…กแ„…แ…ตแ†ท
Dxแ„€แ…ชแ†ซแ„…แ…งแ†ซ alignment แ„Œแ…ฅแ†ผแ„…แ…ต by แ„‹แ…ณแ†ซแ„Œแ…กแ„…แ…ตแ†ทDxแ„€แ…ชแ†ซแ„…แ…งแ†ซ alignment แ„Œแ…ฅแ†ผแ„…แ…ต by แ„‹แ…ณแ†ซแ„Œแ…กแ„…แ…ตแ†ท
Dxแ„€แ…ชแ†ซแ„…แ…งแ†ซ alignment แ„Œแ…ฅแ†ผแ„…แ…ต by แ„‹แ…ณแ†ซแ„Œแ…กแ„…แ…ตแ†ท
ย 
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshinEffective c++ chapter7_8_9_dcshin
Effective c++ chapter7_8_9_dcshin
ย 

Recently uploaded

(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
Jay Park
ย 

Recently uploaded (8)

JMP๋ฅผ ํ™œ์šฉํ•œ ์ „์ž/๋ฐ˜๋„์ฒด ์‚ฐ์—… Yield Enhancement Methodology
JMP๋ฅผ ํ™œ์šฉํ•œ ์ „์ž/๋ฐ˜๋„์ฒด ์‚ฐ์—… Yield Enhancement MethodologyJMP๋ฅผ ํ™œ์šฉํ•œ ์ „์ž/๋ฐ˜๋„์ฒด ์‚ฐ์—… Yield Enhancement Methodology
JMP๋ฅผ ํ™œ์šฉํ•œ ์ „์ž/๋ฐ˜๋„์ฒด ์‚ฐ์—… Yield Enhancement Methodology
ย 
JMP๊ฐ€ ๊ฑธ์–ด์˜จ ์—ฌ์ •, ์ƒˆ๋กœ์šด ๋„์•ฝ JMP 18!
JMP๊ฐ€ ๊ฑธ์–ด์˜จ ์—ฌ์ •, ์ƒˆ๋กœ์šด ๋„์•ฝ JMP 18!JMP๊ฐ€ ๊ฑธ์–ด์˜จ ์—ฌ์ •, ์ƒˆ๋กœ์šด ๋„์•ฝ JMP 18!
JMP๊ฐ€ ๊ฑธ์–ด์˜จ ์—ฌ์ •, ์ƒˆ๋กœ์šด ๋„์•ฝ JMP 18!
ย 
JMP๋ฅผ ํ™œ์šฉํ•œ ๊ฐ€์†์—ดํ™” ๋ถ„์„ ์‚ฌ๋ก€
JMP๋ฅผ ํ™œ์šฉํ•œ ๊ฐ€์†์—ดํ™” ๋ถ„์„ ์‚ฌ๋ก€JMP๋ฅผ ํ™œ์šฉํ•œ ๊ฐ€์†์—ดํ™” ๋ถ„์„ ์‚ฌ๋ก€
JMP๋ฅผ ํ™œ์šฉํ•œ ๊ฐ€์†์—ดํ™” ๋ถ„์„ ์‚ฌ๋ก€
ย 
๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋‚˜์˜ JMP ํ™œ์šฉ๋ฒ•
๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋‚˜์˜ JMP ํ™œ์šฉ๋ฒ•๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋‚˜์˜ JMP ํ™œ์šฉ๋ฒ•
๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋‚˜์˜ JMP ํ™œ์šฉ๋ฒ•
ย 
๊ณตํ•™ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ JMP ๋จธ์‹ ๋Ÿฌ๋‹ ์ตœ์ ํ™”
๊ณตํ•™ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ JMP ๋จธ์‹ ๋Ÿฌ๋‹ ์ตœ์ ํ™”๊ณตํ•™ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ JMP ๋จธ์‹ ๋Ÿฌ๋‹ ์ตœ์ ํ™”
๊ณตํ•™ ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ JMP ๋จธ์‹ ๋Ÿฌ๋‹ ์ตœ์ ํ™”
ย 
(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
(๋…์„œ๊ด‘) ์ธ๊ฐ„์ด ์ดˆ๋Œ€ํ•œ ๋Œ€ํ˜• ์ฐธ์‚ฌ - ๋Œ€ํ˜• ์ฐธ์‚ฌ๊ฐ€ ์ผ์–ด๋‚  ๋•Œ๊นŒ์ง€ ์‚ฌ๋žŒ๋“ค์€ ๋ฌด์—‡์„ ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๊ฐ€?
ย 
JMP ๊ธฐ๋Šฅ์˜ ํ™•์žฅ ๋ฐ ๋‚ด์žฌํ™”์˜ ํ•ต์‹ฌ JMP-Python ์†Œ๊ฐœ
JMP ๊ธฐ๋Šฅ์˜ ํ™•์žฅ ๋ฐ ๋‚ด์žฌํ™”์˜ ํ•ต์‹ฌ JMP-Python ์†Œ๊ฐœJMP ๊ธฐ๋Šฅ์˜ ํ™•์žฅ ๋ฐ ๋‚ด์žฌํ™”์˜ ํ•ต์‹ฌ JMP-Python ์†Œ๊ฐœ
JMP ๊ธฐ๋Šฅ์˜ ํ™•์žฅ ๋ฐ ๋‚ด์žฌํ™”์˜ ํ•ต์‹ฌ JMP-Python ์†Œ๊ฐœ
ย 
์‹คํ—˜ ์„ค๊ณ„์˜ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•: Custom Design์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ˜์‘์ธ์ž ์ตœ์ ํ™” ๋ฐ Criteria ํ•ด์„
์‹คํ—˜ ์„ค๊ณ„์˜ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•: Custom Design์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ˜์‘์ธ์ž ์ตœ์ ํ™” ๋ฐ Criteria ํ•ด์„์‹คํ—˜ ์„ค๊ณ„์˜ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•: Custom Design์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ˜์‘์ธ์ž ์ตœ์ ํ™” ๋ฐ Criteria ํ•ด์„
์‹คํ—˜ ์„ค๊ณ„์˜ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•: Custom Design์„ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ˜์‘์ธ์ž ์ตœ์ ํ™” ๋ฐ Criteria ํ•ด์„
ย 

More effective c++ chapter1 2_dcshin

  • 1. more Effective C++ Chapter 1, 2 โ€˜๊ธฐ๋ณธ ๊ฐœ๋…๋“คโ€™ ๊ทธ๋ฆฌ๊ณ  โ€˜์—ฐ์‚ฐ์ž(Operators)โ€™ 131039 ์‹ ๋™์ฐฌ
  • 2. * -> & . more effective c++ ๋ณด์‹ค ์ •๋„๋ฉด ์ด๊ฒŒ ๋‹จ์ˆœ ๊ธฐํ˜ธ๋กœ ๋ณด์ด์ง€๋Š” ์•Š๊ฒ ์ฃ  ํฌ์ธํ„ฐ์™€ ์ฐธ์กฐ์ž ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์—ฐ์‚ฐ์ž ์ž…๋‹ˆ๋‹ค ๋‘˜ ๋‹ค ์ฃผ์†Œ ๊ฐ’์— ๋Œ€ํ•œ ์ •๋ณด ์ฆ‰, ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์–ธ์ œ ๊ฐ™์€ ๊ฑธ ์ด์œ  ์—†์ด ๋‘ฟ๋˜๊ฐ€?
  • 3. ์ฃผ์†Œ์ธ ๋“ฏ ์ฃผ์†Œ ์•„๋‹Œ ์ฃผ์†Œ ๊ฐ™์€ ๋„ˆ null reference ๊ฐ€ ๋‘˜์„ ํ™•์‹คํžˆ ๊ตฌ๋ถ„ ์ฐธ์กฐ์ž(&) ๊ฐœ๋…์—์„  null reference๊ฐ€ ์—†๋‹ค! ์ฐธ์กฐ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์–ด์•ผ ๋งŒ ํ•จ ๋ฐ˜๋ฉด ํฌ์ธํ„ฐ(*)๋Š” nullptr๋กœ ์„ธํŒ… ๊ฐ€๋Šฅํ•˜๊ธฐ์— ๋ณ€์ˆ˜ ์ฐธ์กฐ ์˜์—ญ์— ๊ฐ์ฒด๊ฐ€ ํ•ญ์ƒ ์žˆ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†์œผ๋ฉด ํฌ์ธํ„ฐ!
  • 4. ์ฐธ์กฐ์ž๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•จ ๋”ฐ๋ผ์„œ ์„ ์–ธ๋  ๋•Œ ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™” ๋˜์–ด์•ผ ํ•จ string& rs; //์ด๊ฑด ์—๋Ÿฌ string s(โ€œxyzzyโ€); //์ดํ•˜ ์ •์ƒ string& rs = s; ํฌ์ธํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ๋Š” ์•„๋‹˜ (๊ทธ๋ ‡๋‹ค๊ณ  ์ดˆ๊ธฐํ™”๋Š” ํ•˜๋Š” ๊ฒŒ ๋‹น์—ฐํ•œ ๊ฑฐ!!) string *ps; //์—๋Ÿฌ๋Š” ์•ˆ๋‚œ๋‹ค string *ps = nullptr; //์ผ๋ฐ˜์ ์ธ ์ดˆ๊ธฐํ™” ์•„๋‹ˆ ์ด๊ฑฐ ์ €๊ฑฐ ๊ฐ€๋ฆฌ๋Š” ๊ฒƒ ๋งŽ์€๋ฐ... ๊ทธ๋ƒฅ ํฌ์ธํ„ฐ๋กœ ํ†ต์ผํ•˜๋ฉด ์‰ฝ์ง€ ์•Š์„๊นŒ? ์‰ฝ๋‹ค๋Š” ๊ฒƒ์€ ๋ญ”๊ฐ€ trade-off ๋˜๋Š” ๊ฒƒ! ์„ฑ๋Šฅ์„ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ์ฐธ์กฐ์ž
  • 5. void printDouble(const double& rd) { cout << rd; } ์ฐธ์กฐ์ž๋Š” null๊ฐ์ฒด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์œผ๋‹ˆ ์–ธ์ œ๋“  ํ†ต๊ณผ cout ๊ตฌ๋ฌธ์—์„œ rd๋Š” double์„ ์ฐธ์กฐ๋ฅผ ๋ณด์žฅํ•œ๋‹ค void printDouble(const double* pd) { if(pd){ cout << pd; } } ํฌ์ธํ„ฐ๋Š” null ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌ cout ๊ตฌ๋ฌธ์—์„œ pd๊ฐ€ null์ด๋ฉด ์œ ํšจํ•œ ์ƒํƒœ๊ฐ€ ์•„๋‹˜
  • 6. ์ฐธ์กฐ์ž๋Š” โ€ข ์ฐธ์กฐ ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์„ ๋•Œ โ€ข ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ฐ”๊พธ์–ด ์ฐธ์กฐํ•  ์ผ์ด ์—†์„ ๋•Œ โ€ข ์—ฐ์‚ฐ์ž ๊ตฌํ˜„ํ•  ๋•Œ ํฌ์ธํ„ฐ๋Š” ๋‚˜๋จธ์ง€ ์ „์ฒด ์—ฐ์‚ฐ์ž ํ•จ์ˆ˜ ๊ตฌํ˜„์—์„œ๋„ ๋ฐ˜๋“œ์‹œ ์ฐธ์กฐ์ž! vector<int> v(10); v[5] = 10; ์ด ๊ตฌ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ operator [] ๊ฐ€ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” v[5] = 10;์„ ์‚ฌ์šฉ ๋ชปํ•จ ํฌ์ธํ„ฐ ๋ฐ˜ํ™˜์‹œ *v[5] = 10;์œผ๋กœ ์จ์•ผ ํ•จ v๊ฐ€ ํฌ์ธํ„ฐ์˜ ๋ฒกํ„ฐ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํ˜ผ๋ž€ ๋ฐœ์ƒ ๋”ฐ๋ผ์„œ
  • 7. C++์˜ ์บ์ŠคํŒ… effective c++์— ์ด์–ด more effective c++์—์„œ๋„ ๊ฐ•์กฐ C++์—๊ฒŒ C++์„... C ์Šคํƒ€์ผ์€ ๋ฒ„๋ฆฌ์ž! โ€ข static_cast โ€ข const_cast โ€ข dynamic_cast โ€ข reinterpret_cast ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์บ์ŠคํŠธ ํ˜•์‹ <๋Œ€์ƒ ํƒ€์ž…> (ํ‘œํ˜„์‹) static_cast<double>(firstNumber)
  • 8. static_cast C ์Šคํƒ€์ผ ์บ์ŠคํŠธ์™€ ๋˜‘๊ฐ™์€ ์˜๋ฏธ์™€ ํ˜•๋ณ€ํ™˜ ๊ธฐ๋ณธ์ด๋ผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋  ๋…€์„ ๋” ์ด์ƒ์˜ ์„ค๋ช…์€...
  • 9. const_cast ๋ถ€ํ„ฐ๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค ํ‘œํ˜„์‹์˜ ์ƒ์ˆ˜์„ฑ(constness)์ด๋‚˜ ํœ˜๋ฐœ์„ฑ(volatileness) ๋ถ€์—ฌ ๋ฐ ์ œ๊ฑฐ ์ „์šฉ ์บ์ŠคํŠธ ์ƒ์† ๋“ฑ ์ด์™ธ์—์„œ๋Š” ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Œ class Widget{โ€ฆ}; class SpecialWidget: public Widget{โ€ฆ}; void update(SpecialWidget* psw); SpecialWidget sw; const SpecialWidget& csw = sw; update(&csw); // ์˜ค๋ฅ˜ update(const_cast<SpecialWidget*>(&csw));
  • 10. dynamic_cast ์ƒ์† ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๊ฐ€๋กœ์ง€๋ฅด๊ฑฐ๋‚˜ ํ•˜ํ–ฅ์‹œํ‚จ ํด๋ž˜์Šค ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ… ํ•  ๋•Œ ์‚ฌ์šฉ ํด๋ž˜์Šค ๊ฐ์ฒด์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋‚˜ ์ฐธ์กฐ์ž์˜ ํƒ€์ž…์„ ํŒŒ์ƒ ํด๋ž˜์Šค ๋˜๋Š” ํ˜•์ œ ํด๋ž˜์Šค๋กœ ๋ณ€ํ™˜ class Widget{โ€ฆ}; class SpecialWidget: public Widget{โ€ฆ}; void update(SpecialWidget* psw); update(dynamic_cast< SpecialWidget* >( pw )); void updateViaRef( SpecialWidget& rsw ); updateViaRef( dynamic_cast< SpecialWidget& > (*pw) );
  • 11. reinterpret_cast ํ•จ์ˆ˜ ํฌ์ธํ„ฐ ํƒ€์ž…์„ ์„œ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐ ์‚ฌ์šฉ ํ•˜์ง€๋งŒ... ๊ฐ•์ œ๋กœ ํ•˜๋Š” ๊ฑฐ๋ผ ์‚ฌ์šฉ ํ•˜์ง€ ๋ง์ž! typedef void (*FuncPtr)(); FuncPtr funcPtrArray[10]; int doSomething(); funcPtrArray[0] = &doSomething; //์—๋Ÿฌ funcPtrArray[0] = reinterpret_cast<FuncPtr>(&doSomething);
  • 12. ์ƒ์†์„ ๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ํ”ํžˆ ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉํ•ด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•œ๋‹ค ๋™์ ์œผ๋กœ ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ํŒŒ์ƒ ํด๋ž˜์Šค ๊ฐ์ฒด์— ๋ฐฐ์—ด์ด ์žˆ๋‹ค๋ฉด ์ฃผ์˜๊ฐ€ ํ•„์š” class Widget{โ€ฆ}; class SpecialWidget: public Widget{โ€ฆ}; void printWidgetArray(ostream& s, const Widget array[], int numElements) { for(int I = 0 ; i< numElements; ++i){ s<< array[i]; } } Widget WidgetArray[10]; printWidgetArray(cout, WidgetArray, 10); SpecialWidget SWArray[10]; printWidgetArray(cout, SWArray, 10); ์ปดํŒŒ์ผ์—์„œ ์—๋Ÿฌ๋Š” ๋ถ„๋ช…ํžˆ ์•ˆ ๋‚œ๋‹ค!
  • 13. ๊ทธ๋Ÿฌ๋‚˜! ์ž˜ ๋™์ž‘ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์ ˆ๋Œ€ ์—†๋‹ค! ๊ฒฐ์ฝ” ์จ์„œ๋Š” ์•ˆ ๋œ๋‹ค ๋ฐฐ์—ด = ํฌ์ธํ„ฐ ์‹œ์ž‘ ์  ๋ฐฐ์—ด + i = ๋ฉ”๋ชจ๋ฆฌ ์ด๋™ Widget๊ณผ SpecialWidget ๊ฐ์ฒด์˜ ํฌ๊ธฐ๊ฐ€ ๋™์ผํ•œ ๋ณด์žฅ์ด ์žˆ๋‚˜? ์ฆ‰, ์ด๋™ํ•˜๋Š” ๋ฒ”์œ„๊ฐ€ ๋™์ผํ•˜๋‹ค๋Š” ๋ณด์žฅ์ด ์žˆ๋‚˜? ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋ณด๋‹ค ํฌ๊ธฐ์—... ์ •์˜๋˜์ง€ ์•Š์€ ํ–‰๋™์ด ๋‚˜์˜ฌ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค ์ƒ์„ฑ / ์‚ญ์ œ ๋ชจ๋‘ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค!
  • 14. ์ƒ์„ฑ์ž๋„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋˜๋ฐ... ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์•„๋‹Œ ํด๋ž˜์Šค์—์„œ ์ž์ฃผ ๋งŒ๋‚˜๋Š” ๋ฌธ์ œ class EquipmentPiece{ public: EquipmentPiece(int IDNumber); โ€ฆ }; EquipmentPiece bestPieces[10]; EquipmentPiece* bestPieces = new EquipmentPiece[10]; //์ธ์ž ์—†์ด ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•ด ์ „๋ถ€ ์—๋Ÿฌ! ํ•ด๊ฒฐ์ฑ… โ€ข ๋ฐฐ์—ด์ด ์ •์˜๋œ ์œ„์น˜์—์„œ ์ƒ์„ฑ์ž ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฝ์ž… โ€ข ๊ฐ์ฒด์˜ ๋ฐฐ์—ด ๋Œ€์‹  ํฌ์ธํ„ฐ์˜ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ํฌ์ธํ„ฐ์— ๊ฐ์ฒด ์ƒ์„ฑ (์ธ์ž๋Š” ์ „๋‹ฌํ•˜๊ณ ) โ€ข placement new(๋ฉ”๋ชจ๋ฆฌ ์ง€์ • new) ์‚ฌ์šฉ
  • 15. Placement new ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์นœํ•˜์ง€ ์•Š๋‹ค + ๊ฐ์ฒด ์‚ญ์ œ์‹œ ์†Œ๋ฉธ์ž๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ๋จ ํ•˜์ง€๋งŒ ๋น„๊ฐ€๊ณต ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋ฐฉ๋ฒ•์œผ๋กœ ํƒ์›” void* rawMemory = operator new[](10*sizeof(EquipmentPiece)); EquipmentPiece* bestPieces = static_cast<EquipmentPiece*>(rawMemory); for(int i =0; i<10; ++i) { new(bestPieces+i) EquipmentPiece(ID Number); } //์‚ญ์ œ์‹œ for(int i =9 ; I >= 0 ; --i) { bestPieces[i].~EquipmentPiece(); } operator delete[](rawMemory);
  • 16. ๋งˆ์ง€๋ง‰์— ์™œ? delete[] bestPieces๊ฐ€ ์•„๋‹Œ๊ฐ€์š”? newํ•˜๊ณ  ์„ธํŠธ๋กœ ์“ฐ๋žฌ๋Š”๋ฐ... new[] ์—ฐ์‚ฐ์ž ์˜€์œผ๋ฉด delete[]์™€ ์„ธํŠธ๋กœ ์‚ฌ์šฉ๋จ ํ•˜์ง€๋งŒ replacement new์—์„œ ์‚ฌ์šฉํ•˜๋Š” new๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹˜ operator new[] ์ด๋ฏ€๋กœ operator delete[]์™€ ์„ธํŠธ!
  • 17. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž์˜ ๋ถ€์žฌ๋Š” ํ…œํ”Œ๋ฆฟ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—๋„ ์•…์˜ํ–ฅ ์ปจํ…Œ์ด๋„ˆ ํด๋ž˜์Šค ๊ฐ์ฒดํ™” ๊ณผ์ •์—์„œ ์ปดํ”Œ๋ฆฟ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ€๋Š” ํƒ€์ž…์ด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ์–ด์•ผ ํ•จ ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์“ฐ๋ผ๋Š” ๊ฑธ๊นŒ ๋ง๋ผ๋Š” ๊ฑธ๊นŒ? ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ๊ฐ€์ƒ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋Š” ์—†์„ ์ˆ˜ ์—†๋‹ค -> ๋ฐ˜๋“œ์‹œ ์จ์•ผ ํ•œ๋‹ค ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋กœ ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ผ์„ ๋‹ค ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ -> ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ๋ณ€๊ฒฝํ•ด ์‚ฌ์šฉ
  • 18. operator new[], operator delete[]? C++์—ฐ์‚ฐ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค ๋‹ค์–‘ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉ์ž์˜ ์ž…๋ง›์— ๋งž๊ฒŒ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!
  • 19. ๋ฌผ๋ก  ๋‹ค ๋˜๋Š” ๊ฑด ์•„๋‹ˆ๊ณ ... ์—ฌ๊ธฐ 12๊ฐœ์˜ ์—ฐ์‚ฐ์ž๋Š” ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ!
  • 20. ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์œ„ํ•ด ์—ฐ์‚ฐ์ž๋ฅผ ๊นŒ๋ณด๋ฉด ์„ฑ๋Šฅ ์ด์Šˆ๋„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์€ for๋ฌธ์„ ์–ด๋–ป๊ฒŒ ์“ฐ๋‚˜์š”? 1. for(int i=0 ; i <10 ; i++ ) 2. for(int i=0 ; i <10 ; ++i ) ๋‹ค๋ฅธ ์ฑ…์—์„œ๋Š” ๋‹ค๋“ค 1๋ฒˆ์„ ์“ฐ๋˜๋ฐ... //์ „์œ„ ์—ฐ์‚ฐ UPInt& UPInt::operator++() { *this += 1; return *this; } //ํ›„์œ„ ์—ฐ์‚ฐ, ์ „๋‹ฌ ์ธ์ž int๋Š” ๋‘˜์˜ ์ฐจ์ด๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž„ const UPInt UPInt::operator++(int) { const UPInt oldValue = *this; ++(*this); return oldValue; } ๋ฐ”๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ / ์„ ์–ธ ๊ณผ์ •์ด ์žˆ๋Š” ๊ฒƒ ๋ญ๊ฐ€ ๋” ์ข‹์„์ง€ ๊ฐ์ด ์˜ค์‹œ๋‚˜์š”?
  • 21. C++์˜ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ์—ฐ์‚ฐ์ž๊ฐ€ ๊ธฐ๋Šฅ์„ ํ•˜๊ธฐ ์žˆ๊ธฐ ๋•Œ๋ฌธ! (๋‹จ์ผ ์ผ์ž ์ƒ์„ฑ์ž/ ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž) ์•”์‹œ์  ํƒ€์ž…๋ณ€ํ™˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์˜๋„์™€ ์ƒ๊ด€ ์—†์ด ์•Œ์•„์„œ ์ง„ํ–‰ํ•จ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ณ„ํš์น˜ ์•Š์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ƒ„ ๋”ฐ๋ผ์„œ ๋˜‘๊ฐ™์€ ์ผ์„ ํ•˜๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ–๋Š” ํ•จ์ˆ˜๋กœ ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•ด์•ผ ํ•จ class Rational{ public: Rational(int numerator = 0, int denominator = 1); operator double() const; }; Rational r(1,2); cout<<r; //์ด ๊ฒฝ์šฐ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋ถ„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•  ์ค„ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— //์•Œ์•„์„œ double๋กœ ๋งŒ๋“ค์–ด์„œ 0.5๋กœ ์ถœ๋ ฅ
  • 22. ์ƒ์„ฑ์ž๋„ ์—ฐ์‚ฐ์ž์ด๊ธฐ ๋•Œ๋ฌธ์—... ์•”์‹œ์  ํƒ€์ž… ๋ณ€ํ™˜์ด ์ถฉ๋ถ„ํžˆ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์Œ ์ฆ‰ ์•”์‹œ์ ์ธ ๋ณ€ํ™”๋ฅผ ๋งˆ์Œ๊ป ๋‚ ๋›ฐ๊ฒŒ ๋‘˜ ์ˆ˜๋ก ๊ฐœ๋ฐœ์ž๋Š” ํž˜๋“ค์–ด ์งˆ ์ˆ˜ ๋ฐ–์— ์—†์Œ ์ด๋Ÿฐ ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ๋ ๊นŒ์š”? โ€ข ๋‹จ์ผ ์ธ์ž ์ƒ์„ฑ์ž๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š์Œ (์ด๊ฑด ๋งค๋ฒˆ ํ•  ์ˆ˜ ์—†์Œ) โ€ข ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋งˆ์Œ๋Œ€๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋„๋ก ํ•จ explicit ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉ template<class T> class Array{ public: โ€ฆ explicit Array(int size); โ€ฆ }; Array<int> a(10); Array<int> b(10); if(a == b[i])...//์—๋Ÿฌ๋ฐœ์ƒ
  • 23. ์•ž์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋‹ˆ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์• ์šฉํ•ฉ์‹œ๋‹ค?! &&, ||, .์— ๋Œ€ํ•ด ์˜ค๋ฒ„๋กœ๋”ฉ ํ•˜๋ฉด C++์˜ ๊ธฐ๋Šฅ์„ ์ฃฝ์ด๊ธฐ๋„ ํ•จ ๋‹จ์ถ• ํ‰๊ฐ€(short-circuit)์ฒ˜๋ฆฌ๊ฐ€ ์‚ฌ๋ผ์ง... char* p; if((p != 0) && (strlen(p) > 10)) โ€ฆ ์ฝ”๋“œ์—์„œ p๊ฐ€ null์ด์–ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค ์ด๋ฏธ p!= 0์—์„œ ๋‹จ์ถ• ํ‰๊ฐ€๊ฐ€ ์ผ์–ด๋‚˜ strlen(p)๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค! ์˜ค๋ฒ„๋กœ๋”ฉํ•˜๋ฉด?! ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ตฌ์กฐ๊ฐ€ ๋˜์–ด ๋ฒ„๋ ค ๋‹จ์ถ• ํ‰๊ฐ€๋Š” ์‚ฌ๋ผ์ง„๋‹ค. strlen(p)๊ฐ€ ์‹คํ–‰๋  ์ˆ˜๋„ ์žˆ๋‹ค = ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜
  • 24. more effective C++ ์‹œ์ž‘