๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 218

C++ ๊ฐ์ฒด ์ƒ์„ฑ ๊ทœ์น™(์ƒ์„ฑ, ๋ณต์‚ฌ, ์ด๋™, ์†Œ๋ฉธ), ์ƒ์„ฑ์ž ์ดˆ๊ธฐํ™”, ์ƒ์„ฑ์ž ์˜ค๋ฒ„๋กœ๋”ฉ, ์ •๊ทœ ํƒ€์ž…

๊ฐ์ฒด ์ƒ์„ฑ์ž(Object Constructors)์™€ ์†Œ๋ฉธ์ž(Destructor) - ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ์—ฐ์‚ฐ์„ ํ•˜๋‚˜๋„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ (0์˜ ๊ทœ์น™) ๋ชจ๋‘ ๊ตฌํ˜„ (6์˜ ๊ทœ์น™) ํ•ด์•ผ ํ•œ๋‹ค - ๊ธฐ๋ณธ ์—ฐ์‚ฐ์„ ์ •์˜ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ผ- ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ณ , ๋ช…๋ฃŒํ•œ ์˜๋ฏธ๋ฅผ ์ค€๋‹ค - ๋ณต์‚ฌ, ์ด๋™, ์†Œ๋ฉธ์ž์˜ ์˜๋ฏธ๋Š” ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์–ด, ๋งŒ์•ฝ ์ด๋“ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ์„ ์–ธ๋˜๋ฉด, ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค๋„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค- ๋ณต์‚ฌ/์ด๋™/์†Œ๋ฉธ์ž ํ•จ์ˆ˜๋ฅผ =default ๋˜๋Š” =delete๋กœ ์„ ์–ธํ•˜๋ฉด, ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ด๋™ ์ƒ์„ฑ์ž ๋ฐ ์ด๋™ ํ• ๋‹น ์—ฐ์‚ฐ์ž์˜ ๋ฌต์‹œ์  ์„ ์–ธ์ด ์•ˆ๋œ๋‹ค.- ์ด๋™ ์ƒ์„ฑ์ž ๋˜๋Š” ์ด๋™ ํ• ๋‹น ์—ฐ์‚ฐ์ž๋ฅผ =default ๋˜๋Š” =delete๋กœ ์„ ์–ธํ•˜๋ฉด, ๋ฌต์‹œ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ๋ณต์‚ฌ ์ƒ์„ฑ์ž ๋˜๋Š” ๋ณต์‚ฌ ํ• ๋‹น ์—ฐ์‚ฐ์ž๊ฐ€ ์‚ญ์ œ๋œ ๊ฒƒ์œผ๋กœ ์ •..

C++ ํด๋ž˜์Šค(Class)์™€ friend ํ•จ์ˆ˜/ํด๋ž˜์Šค, this ํฌ์ธํ„ฐ

OOP(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์˜ 4๊ฐ€์ง€ ํŠน์„ฑ(์ถ”์ƒํ™”, ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ)C++๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค  OOP(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) 4๊ฐ€์ง€ ํŠน์„ฑ 1. ์ถ”์ƒํ™” : ์–ด๋–ค ํŠน์ • ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•˜๊ณ  ์–ด๋–ค ์ •๋ณด๋ฅผ ์ˆจ๊ฒจ์•ผํ•˜๋Š”์ง€ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐ์ˆ   "ํ•ต์‹ฌ์ด ๋ญcodebunny99.tistory.com OOP์˜ ์†์„ฑ ์ค‘, ์บก์Аํ™”๋Š” ์ˆจ๊ฒจ์•ผ ํ•  ๋‚ด์šฉ์„ ์ˆจ๊ธฐ๊ณ  ํ‘œ์‹œํ•  ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ธฐ์ˆ ์ธ๋ฐ, ํด๋ž˜์Šค๋Š” ์บก์Аํ™”(+์ •๋ณด์€๋‹‰ : information hiding)์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค.  ํด๋ž˜์Šค ๋‚ด๋ถ€์—๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์ ‘๊ทผ ์ œํ•œ์ž(private, public, protected)์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.์ ‘๊ทผ์ œํ•œ์ž๊ฐ€ ์—†์œผ๋ฉด def..

OOP(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์˜ 4๊ฐ€์ง€ ํŠน์„ฑ(์ถ”์ƒํ™”, ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ)

C++๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค  OOP(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) 4๊ฐ€์ง€ ํŠน์„ฑ 1. ์ถ”์ƒํ™” : ์–ด๋–ค ํŠน์ • ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•˜๊ณ  ์–ด๋–ค ์ •๋ณด๋ฅผ ์ˆจ๊ฒจ์•ผํ•˜๋Š”์ง€ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ธฐ์ˆ   "ํ•ต์‹ฌ์ด ๋ญ์•ผ?" "์–ด๋А ๋ ˆ๋ฒจ์—์„œ ์„ค๋ช… ๋“œ๋ฆด๊นŒ์š”?"   - ์ ˆ์ฐจ๋กœ์„œ์˜ ์ถ”์ƒํ™” : ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๋ฌด์‹œํ•˜๋ฉด์„œ ํ•„์ˆ˜ ์ •๋ณด๋ฅผ ์ถ”์ถœ   - ์‹ค์ฒด(entity)๋กœ์„œ์˜ ์ถ”์ƒํ™” : ์‹ค์ œ์— ๋Œ€ํ•œ ๋ชจ๋ธ(model), ๋ทฐ(view), ํ‘œํ˜„(representation)  2. ์บก์Аํ™” : ์ˆจ๊ฒจ์•ผ ํ•  ๋‚ด์šฉ์„ ์ˆจ๊ธฐ๊ณ  ํ‘œ์‹œํ•  ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๋ณด๋ฅผ ํŒจํ‚ค์ง•ํ•˜๋Š” ๊ธฐ์ˆ     (ex ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ชจ๋“ˆ ๋“ฑ "์บก์Аํ™”๋œ ๋ชจ๋“  ๊ฒƒ์ด ์ˆจ๊ฒจ์ ธ ์žˆ๋Š”๊ฐ€?")   - ์ ˆ์ฐจ๋กœ์„œ์˜ ์บก์Аํ™” : ๋ฌผ๋ฆฌ์ , ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ๋Š” ํ–‰์œ„   - ์—”ํ‹ฐํ‹ฐ๋กœ์„œ์˜ ์บก์Аํ™” : ํŒจํ‚ค์ง€ ํ˜น..

C++ ํ•จ์ˆ˜(inline, ์žฌ๊ท€, lambda)์™€ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ, ์ธ์ž์˜ ์œ ํ˜•๊ณผ ์ „๋‹ฌ ๋ฐฉ์‹

ํ•จ์ˆ˜์˜ ์ •์˜ - ํ•จ์ˆ˜์˜ ์ด๋ฆ„์€ ํ•จ์ˆ˜๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ์ตœ์ข…(์ „์ฒด) ๊ฒฐ๊ณผ๋ฅผ ๋œปํ•˜๋„๋ก ํ•œ๋‹ค.- ๋ณ€์ˆ˜, ํ•จ์ˆ˜, enum, ํด๋ž˜์Šค ๋“ฑ์€ ์‚ฌ์šฉ๋˜๊ธฐ ์ „์— ์„ ์–ธํ•œ๋‹ค.- ์ •์˜๋Š” ์˜ค์ง 1ํšŒ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค(One Definition Rule) ์„ ์–ธ์€ ์—ฌ๋Ÿฌ ํšŒ ํ—ˆ์šฉ๋œ๋‹ค     inline ํ•จ์ˆ˜  - inline ํ•จ์ˆ˜๋Š” ํ—ค๋” ํŒŒ์ผ์—์„œ ์„ ์–ธํ•˜๊ณ  ์ •์˜ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์—ฌ๋Ÿฌ ํŒŒ์ผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. - inline ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ํ•˜์ง€ ์•Š๊ณ , ํ•จ์ˆ˜์˜ ๋ณธ๋ฌธ์„ ํ˜ธ์ถœ ์œ„์น˜์— ์ง์ ‘ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜๋Š” C++์˜ ์ตœ์ ํ™” ๊ธฐ๋ฒ•- ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ํ•จ์ˆ˜๋ฅผ ์ธ๋ผ์ธ ์ฒ˜๋ฆฌํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•ด๋‹ฌ๋ผ๋Š” ํžŒํŠธ๋ฅผ ์ฃผ๋ฉฐ, ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ์ตœ์ ํ™”ํ•˜๋ ค๋Š” ์˜๋„๋ฅผ ์ „๋‹ฌ - ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด, ์Šคํƒ์— ์Šคํƒํ”„๋ ˆ์ž„์ด ์ƒ์„ฑ๋˜๋Š”๋ฐ ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ๊ณผ์ •์—..

C++ mainํ•จ์ˆ˜, ์‹คํ–‰ ๊ณผ์ •, ๋ฉ”๋ชจ๋ฆฌ, ์ €์žฅ ํด๋ž˜์Šค(Storage Class)

main() ํ•จ์ˆ˜ main() ํ•จ์ˆ˜๋Š” C++ ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์ด๋‹ค.ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜์ด๋ฉฐ, ์ปดํŒŒ์ผ๋Ÿฌ์™€ ์šด์˜ ์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์œผ๋กœ main() ํ•จ์ˆ˜๋ฅผ ์ธ์‹ main() ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์ด๋ฉฐ, ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ด์•ผ ํ•จํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๊ฐ€์žฅ ๋จผ์ € ํ˜ธ์ถœ๋˜๋ฉฐ, ์ข…๋ฃŒ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ํ•จ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด main(int argc, char* argv[]) ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œmain() ํ•จ์ˆ˜๋Š” ๋ณดํ†ต int๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ฐ˜ํ™˜๊ฐ’์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ์•Œ๋ฆด ์ˆ˜ ์žˆ์Œ   ์‹คํ–‰ ๊ณผ์ •   Memory Layout      ์ €์žฅ ํด๋ž˜์Šค(Storage Class)  ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜์˜ ์ˆ˜๋ช…๊ณผ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค ์ €์žฅ ํด๋ž˜์Šค๋Š” ๋ณ€์ˆ˜๊ฐ€ ์–ธ์ œ ํ• ๋‹น๋˜๊ณ  ํ•ด์ œ๋˜๋ฉฐ, ์–ด๋””์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ..

C++ ๋ฌธ์žฅ๊ณผ ์—ฐ์‚ฐ์ž, ์ œ์–ด๋ฌธ(if, switch, for, while ๋“ฑ)

๋ฌธ์žฅ๋์ด ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๋๋‚จ;  ์•„๋ฌด๊ฒƒ๋„ ์—†์ด ์„ธ๋ฏธ์ฝœ๋ก ๋งŒ ์žˆ์–ด๋„ ๋ฌธ์žฅ์ด๋‹ค.{ } - ๋ณตํ•ฉ๋ฌธ(compound statement)์ œ์–ด๋ฌธ(if, for, while, switch ๋“ฑ)๋„ ๋ฌธ์žฅ์— ํ•ด๋‹นํ•œ๋‹ค.    Operators (์—ฐ์‚ฐ์ž)     Program Flow Operators - ํ”„๋กœ๊ทธ๋žจ์„ ์ œ์–ดํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์—ฐ์‚ฐ์ž(1) ํ•จ์ˆ˜ ํ˜ธ์ถœ : C++์—์„œ๋Š” ์—ฐ์‚ฐ์ž๋กœ ์ทจ๊ธ‰(2) ์กฐ๊ฑด ์—ฐ์‚ฐ์ž : x ? a : b , ์กฐ๊ฑด x๋ฅผ ๋งŒ์กฑํ•˜๋ฉด(true) ํ‘œํ˜„์‹ ๊ฐ’์€ a๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์•„๋‹ˆ๋ฉด(false) b์˜ ๊ฐ’์„ ๊ฐ€์ง(3) ์ฝค๋งˆ ์—ฐ์‚ฐ์ž : E1, E2 ์ฝค๋งˆ์˜ ์™ผ์ชฝ์— ์žˆ๋Š” E1๋ฅผ ๋จผ์ € ๊ณ„์‚ฐํ•œ ๋’ค ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” E2๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ ํ‘œํ˜„์‹ ๊ฐ’์€ E2์˜ ๊ฐ’์ž„     (์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์ค‘ ์ฝค๋งˆ ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ์Œ)      if ๋ฌธ-..

C++ ํ‘œ์ค€ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ STL(Standard Template Library)

ํ‘œ์ค€ ํ…œํ”Œ๋ฆฟ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ STL(Standard Template Library) C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹คSTL์€ ์ผ๋ฐ˜ํ™”๋œ(Generic) ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋กœ ์ปจํ…Œ์ด๋„ˆ, ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐ˜๋ณต์ž๋กœ ๊ตฌ์„ฑ๋œ๋‹ค - ์ปจํ…Œ์ด๋„ˆ : std::vector, std::list, std::set, std::map ๋“ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค.- ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž‘๋™ํ•˜๋Š” ํ•จ์ˆ˜๋“ค๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ์ •๋ ฌ, ์ˆ˜์ •, ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ- ์ดํ„ฐ๋ ˆ์ดํ„ฐ : ์ปจํ…Œ์ด๋„ˆ ์š”์†Œ๋“ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ์ฒด๋กœ, ์ปจํ…Œ์ด๋„ˆ(๋ฐ์ดํ„ฐ)์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ–‰์œ„)์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•จ                     ํฌ์ธํ„ฐ์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ..

C++ ํƒ€์ž…๊ณผ ์ˆ˜์‹์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ (2)

C++ ํƒ€์ž…๊ณผ ์ˆ˜์‹์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ (1)cout - printf์™€ ๋น„์Šทํ•˜๋‹ค.- ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋กœ, ์ฝ˜์†”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ- cout์€ ์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ์ž   cin- scanf์™€ ๋น„์Šทํ•˜๋‹ค.- ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋กœ, ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅcodebunny99.tistory.com  ๋ฐฐ์—ด์ด๋ž€?๋™์ผ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์˜ ์ง‘ํ•ฉ ์ •์˜ ๋ฐฉ๋ฒ•type ๋ณ€์ˆ˜๋ช…[n] ex) int values[5] = {0, 10, 20, 30, 40};   ๋ฐฐ์—ด์˜ ์›์†Œ ๊ฐ’์€ ๋ฐฐ์—ด์„ ์ •์˜ํ•  ๋•Œ ์ดˆ๊ธฐํ™” ๋  ์ˆ˜ ์žˆ๋‹ค (1) ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์ดˆ๊ธฐํ™” ๋ชฉ๋ก์˜ ํฌ๊ธฐ๋กœ ๊ฒฐ์ •๋œ๋‹ค- ์ฆ‰ int intArray2[] = {1,2,3,4}; ๋Š” int intArray2[4] = {1,2,3,4}; ์™€ ๋™์ผํ•˜๋‹ค (2) ์ง€์ •๋˜์ง€ ์•Š์€ ์›์†Œ์˜ ์ดˆ๊ธฐ..

C++11 ํ‚ค์›Œ๋“œ) nullptr(๋„ํฌ์ธํ„ฐ), auto(์˜คํ† ), decltype(๋””ํดํƒ€์ž…), lvalue(์ขŒ์ธก๊ฐ’)์™€ rvalue(์šฐ์ธก๊ฐ’)

nullptr (๋„ํฌ์ธํ„ฐ)- ํฌ์ธํ„ฐ ํƒ€์ž…์˜ ์ƒ์ˆ˜๋กœ, ํฌ์ธํ„ฐ๊ฐ€ ์–ด๋–ค ์œ ํšจํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์Œ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.- ํฌ์ธํ„ฐ๊ฐ€ ์œ ํšจํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’์œผ๋กœ, 0์ด๋‚˜ NULL์„ ๋Œ€์‹ ํ•˜์—ฌ ์‚ฌ์šฉ๋œ๋‹ค- nullptr๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•จ์ˆ˜ ์˜ค๋ฒ„๋กœ๋”ฉ์—์„œ ๋ช…ํ™•ํ•˜๊ฒŒ ํƒ€์ž…์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” NULL์ด ์ •์ˆ˜ํ˜•์œผ๋กœ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ํ˜ผ๋™์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค. #include int main() { int* ptr = nullptr; if (ptr == nullptr) { std::cout - ptr์ด nullptr๊ณผ ๋น„๊ตํ•  ๋•Œ, ๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ํฌ์ธํ„ฐ ํƒ€์ž…์— ๋งž๊ฒŒ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰๋œ๋‹ค.  ์ด๋Š” nullptr๊ฐ€ ํฌ์ธํ„ฐ ํƒ€์ž…๊ณผ ๋ช…ํ™•ํžˆ ์—ฐ๊ด€๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.  ..

C++ ํฌ์ธํ„ฐ, ๋™์  ํ• ๋‹น, ์ฐธ์กฐ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๊ธฐ

ํฌ์ธํ„ฐ - ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”(point) ์—ญํ• ์„ ํ•˜๋Š” ๋ณ€์ˆ˜- ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ฃผ์†Œ๋ฅผ ๊ฐ’์œผ๋กœ์„œ ๊ฐ€์ง    - ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•จ   T ํƒ€์ž…์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ : T*  ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ๊ฐ’์˜ ๋Œ€์ž…  *ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ : ์› ๋ณ€์ˆ˜ ๊ฐ’์˜ ์กฐํšŒ ๋ฐ ๋ณ€๊ฒฝ   ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ์ •์˜์™€ ์‚ฌ์šฉ ์˜ˆ      C++์˜ ๋™์  ํ• ๋‹น : new์™€ delete  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น : new- T* = new T ;- T* = new T[size] ;  ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ : delete- delete p ;- delete [] p ;    ํฌ์ธํ„ฐ ๊ด€๋ จ ์˜ค๋ฅ˜ ์ตœ์†Œํ™”ํ•˜๊ธฐ : ์ผ๋ฐ˜์ ์œผ๋กœ ํฌ์ธํ„ฐ๋Š” ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค (1) ๊ฐœ์ฒด ์ฐธ์กฐ   - ๋ฌธ์ œ : ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ, double free (2) ๋™์  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌ   ..