728x90
(c++) ํ•จ์ˆ˜ ๋’ค const
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 27. 16:43(c++) ํ•จ์ˆ˜ ๋’ค const

" ํ•จ์ˆ˜ ๋’ค const " class Test { public: void ResizeVector(int num) const { vec.resize(num); } private: vector vec;} ์œ„์— ์žˆ๋Š” ํ•จ์ˆ˜๋Š” ์ปดํŒŒ์ผ์ด ๋ ๊นŒ? ์ •๋‹ต์€ ์•ˆ๋œ๋‹ค. ์ด์œ ๋Š” ํ•จ์ˆ˜ ๋’ค const ๋•Œ๋ฌธ์— vector ๋‚ด์žฅํ•จ์ˆ˜์ธ resize๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.ํ•จ์ˆ˜ const์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž. [ ์˜๋ฏธ ] - ํ•ด๋‹น ํ•จ์ˆ˜์—์„œ๋Š” ํ•ด๋‹น ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.  - ์—ฌ๊ธฐ์„œ ์ด๋ฒˆ์— ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ์‚ฌ์‹ค์€ ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ์ˆœ์ฐจ ์ปจํ…Œ์ด๋„ˆ vector๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ vector ๋‚ด์žฅ ํ•จ์ˆ˜๋„ ์ œํ•œ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ๊ฑฐ์ง€๋งŒ ...? ์ปดํŒŒ์ผ ์ „์— ์˜ค๋ฅ˜๋ฉ”์‹œ์ง€๋ฅผ ๋ฑ‰๋Š”๊ฒŒ ์‹ ๊ธฐํ–ˆ๋‹ค...

(c++20) STL::Container #2 - contains, starts_with, ends_with
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 17. 18:31(c++20) STL::Container #2 - contains, starts_with, ends_with

"c++20 STL::Container #2" 1. contains๊ธฐ์กด map, set ๋ฐ์ดํ„ฐ findํ•จ์ˆ˜ ์‚ฌ์šฉ ์‹œ ๋ฐ˜๋ณต์ž์™€ end๋ฐ˜๋ณต์ž๊ฐ€ ๊ฐ™์ง€ ์•Š์€ ์ง€ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์ด์˜€๋‹ค. std::set s {1, 2, 3, 4, 5}; auto findset = s.find(2);if (findset != s.end()){ cout m {{1, 1000}, { 2, 2000 }}; auto findmap = m.find(2); if(findmap != m.end()){ cout second c++20์—์„œ ์ƒˆ๋กœ ์ถ”๊ฐ€ ๋œ contains๋Š” associate container์˜ ๋‚ด์žฅํ•จ์ˆ˜๋กœ ์ฐพ์œผ๋ ค๋Š” ํ‚ค๊ฐ’์„ ๋„ฃ์œผ๋ฉด true, false๋กœ ๊ทธ key์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. if (findset.contains(2)..

(c++20) STL::Container #1 - std::to_array, erase, erase_if
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 17. 18:01(c++20) STL::Container #1 - std::to_array, erase, erase_if

"c++20 STL::Container #1" 1. std::to_array std::array ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค. //์•”์‹œ์  ํƒ€์ž… ์ถ”๋ก  auto ToArray = std::to_array("Hello World");//๋ช…์‹œ์  ํƒ€์ž… ์ถ”๋ก auto ToArray = std::to_array({ 1,2,3,4,5,6 }); 2. std::erase, erase_if  ๊ธฐ์กด์— vector ๋ฐ์ดํ„ฐ ์ค‘ ํŠน์ •ํ•œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•๊ณผ ๋ฌธ์ œ์ ์„ ์•Œ์•„๋ณด์ž.// 1๋ฒˆ ====================================================================vector vec {-1, 2, 3, 4, -5, 7, -2, 3 }; for (auto i..

(c++20) Conditional Explicit  Constructor
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 17. 15:17(c++20) Conditional Explicit Constructor

"(c++20) Conditional Explicit  Constructor" 1. explicit // c++11 struct NoExplicit{ NoExplicit() = default; NoExplicit(int n) { cout TestNoExplicit(10); // - ???? error X  TestNoExplicit() NoExplicit struct ์ž๋ฃŒํ˜•์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ณ  ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋งค๊ฐœ๋ณ€์ˆ˜์— NoExplicit struct ์ด ์™ธ์— ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์ด ๋“ค์–ด๊ฐ„๋‹ค๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฑ‰์–ด๋‚ด๋Š”๊ฒŒ ์ •์ƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์œ„ ์ฝ”๋“œ์—์„œ TestNoExplicit(10) ์—๋Ÿฌ๋ฅผ ๋ฑ‰์–ด ๋‚ผ๊ฑฐ ๊ฐ™์ง€๋งŒ ์ •์ƒ ์ž‘๋™ํ•œ๋‹ค. ์ด๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ  "10"์„ NoExplicit(int n)" ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜์„ ..

(c++20) [Three-way Comparsion(3๋ฐฉํ–ฅ ๋น„๊ต ์—ฐ์‚ฐ์ž)/์šฐ์ฃผ์„ ] ์—ฐ์‚ฐ์ž
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 14. 17:21(c++20) [Three-way Comparsion(3๋ฐฉํ–ฅ ๋น„๊ต ์—ฐ์‚ฐ์ž)/์šฐ์ฃผ์„ ] ์—ฐ์‚ฐ์ž

"(c++20) Three-way Comparsion(3๋ฐฉํ–ฅ ๋น„๊ต ์—ฐ์‚ฐ์ž)/์šฐ์ฃผ์„ " c++20์— ์ถ”๊ฐ€๋œ ๊ฒƒ ์ค‘์— ์•„์ฃผ ํŽธ์•ˆํ•œ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์ด ์ƒ๊ฒผ๋‹ค. !! ์ง€๊ธˆ์€ ์•„๋‹ˆ๋”๋ผ๋„(?) ์•„์ฃผ ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ๊ฑฐ ๊ฐ™์€ ๋…€์„์ด๋ผ์„œ ์ •๋ฆฌํ•ด๋ณธ๋‹ค. class๋‚˜ struct๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ทธ ๊ฐ์ฒด๋ผ๋ฆฌ ๋น„๊ต๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„์š”์— ๋”ฐ๋ผ [ '' '>=' '==' '!=' : 6๊ฐœ] ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์„œ c++20์— ์ถ”๊ฐ€๋œ Three-way Comparsion ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด 6๊ฐœ๋ฅผ ํฌํ•จํ•œ operatorํ•˜๋‚˜๋งŒ ์ •์˜ํ•˜๋ฉด ๋œ๋‹ค. #include using namespace std;struct Myoperator{ Myoperator(int value) : _value(value) { } //auto ope..

(c++20) consteval, constinit
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 6. 14. 16:27(c++20) consteval, constinit

"(c++20) consteval, constinit" C++20์— ์ถ”๊ฐ€๋œ Language ์ค‘ consteval, constinit์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ๊ธฐ์กด์— ์žˆ์—ˆ๋˜ const์™€ constexpr๊ณผ ๋น„๊ตํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. ์ผ๋‹จ ์–ด๋–ค ๋‹จ์–ด์˜ ์ค„์ž„๋ง์ธ์ง€ ํ™•์ธํ•˜๊ณ  ๋„˜์–ด๊ฐ€์ž ~const: Constant ์ƒ์ˆ˜constexpr: Constant Expression ํ‘œํ˜„// c++11consteval: Constant Evaluation ๊ฒ€์ฆ  // c++20 constinit: Constrant Initialization ์ดˆ๊ธฐํ™” // c++20ํ•จ์ˆ˜์— ํ‚ค์›ŒํŠธ๋ฅผ ๋ถ™์˜€์„ ๋•Œ, ๋ณ€์ˆ˜์— ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์˜€์„ ๋•Œ๋ฅผ ๋‚˜๋ˆ ์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.  1. ํ•จ์ˆ˜ (์ผ๋ฐ˜ vs constexpr vs consteval) ๋จผ์ € ์„ ํ–‰ํ•ด์•ผ ํ•  ๊ฐœ๋…์€ ๋Ÿฐํƒ€์ž„(..

[c++17] ์ „๋ฌธ์ž๋ฅผ ์œ„ํ•œ c++17 ์ƒˆ๋กœ์šด ๋‚ด์šฉ ๋ถ๋งˆํฌ
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2024. 3. 11. 14:26[c++17] ์ „๋ฌธ์ž๋ฅผ ์œ„ํ•œ c++17 ์ƒˆ๋กœ์šด ๋‚ด์šฉ ๋ถ๋งˆํฌ

c++17์— ์ถ”๊ฐ€๋œ ๋ฌธ๋ฒ•์„ ๋„์„œ "์ „๋ฌธ๊ฐ€๋ฅผ ์œ„ํ•œ C++17(๊ฐœ์ •4ํŒ)"์—์„œ ๋น ๋ฅด๊ฒŒ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. page 58์ค‘์ฒฉ๋œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค (nested namespace)61std::byte69if๋ฌธ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €(intializer : ์ดˆ๊ธฐ์ž)72switch๋ฌธ์˜ ์ด๋‹ˆ์…œ๋ผ์ด์ €(intializer : ์ดˆ๊ธฐ์ž)81๊ตฌ์กฐ์  ๋ฐ”์ธ๋”ฉ(structured binding)138๋กœ์šฐ ๋ ˆ๋ฒจ ์ˆซ์ž ๋ณ€ํ™˜ "}">#include 140std::string_viewํด๋ž˜์Šค298weak_ptr๋„ shared_ptr์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ C์Šคํƒ€์ผ ๋ฐฐ์—ด์„ ์ง€์›ํ•œ๋‹ค.299weak_from_this()390static ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋ฅผ inline์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.530std::as_const() ํ—ฌํผ ๋ฉ”์„œ๋“œ "}">#include  (obj)..

[C++] Map์˜ Key๋กœ Class/Struct ๋„ฃ๊ธฐ
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2023. 8. 11. 18:35[C++] Map์˜ Key๋กœ Class/Struct ๋„ฃ๊ธฐ

์˜ค๋Š˜์€ "ํ˜ธ๋žญ์ด์•„์ธ๊ต" ๋ณ‘์•„๋ฆฌ ๋ธ”๋กœ๊ทธ๋ฅผ ์šด์˜ํ•˜๋Š” ๊น€๋“œ์Šค๋‹˜์˜ ํฌ์ŠคํŒ…์„ ํ›”์ณ์™”๋‹ค !! ๋˜‘๊ฐ™์ด ํฌ์ŠคํŒ… ํ•ด๋„ ๋œ๋‹ค๊ณ  ํ—ˆ๋ฝ์„ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ถœ์ฒ˜๋ฅผ ๋ฐํžˆ๊ณ  ๊ฑฐ์˜ 80% ๊ฐ™์€ ๋‚ด์šฉ์„ ํฌ์ŠคํŒ…ํ•œ๋‹ค. ๊ณ ๋งˆ์›Œ์š” ๊น€๋“œ์Šค๋‹˜ ~ ** Map์˜ Key ๊ฐ’์œผ๋กœ Class/Struct ๋„ฃ๊ธฐ ** ๐ŸŽƒ๋ชฉํ‘œ map์˜ key๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ํƒ€์ž…(int, string, float, double...)์ด ์•„๋‹Œ ์šฐ๋ฆฌ๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ํƒ€์ž…(user defined type)์„ ๋„ฃ์–ด๋ณด์ž. ๐ŸŽƒํŠน์ง• Map์€ key(ํ‚ค)์™€ Value(๊ฐ’)์ด ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ํ‚ค๋ฅผ ํ†ตํ•ด ๊ฐ’์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. map์€ key(ํ‚ค)์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ , value(๊ฐ’)์˜ ์ค‘๋ณต์€ ํ—ˆ์šฉํ•œ๋‹ค. c++์˜ map์€ ๋ ˆ๋“œ๋ธ”๋ž™ํŠธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„์ด ๋˜์–ด์žˆ..

(c++) ์ธ์ฝ”๋”ฉ(Encoding),์œ ๋‹ˆ์ฝ”๋“œ(Unicode), ๋กœ์ผ€์ผ, ํŒจ์‹ฏ
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2022. 9. 7. 12:36(c++) ์ธ์ฝ”๋”ฉ(Encoding),์œ ๋‹ˆ์ฝ”๋“œ(Unicode), ๋กœ์ผ€์ผ, ํŒจ์‹ฏ

1. ์ธ์ฝ”๋”ฉ(Encoding)๋ž€? ์ฝ”๋“œํ™”(๋ฌธ์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ์ปดํ“จํ„ฐ์—์„œ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•), ์•”ํ˜ธํ™”๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋ฐ˜๋Œ€๋ง์€ ๋””์ฝ”๋”ฉ(decoding)์ด๋‹ค. ์–ด๋–ค ์ •๋ณด๋ฅผ ์ •ํ•ด์ง„ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ(en-code-ing)์„ ์ผ์ปซ๋Š”๋‹ค. 2. ์œ ๋‹ˆ์ฝ”๋“œ(Unicode)๋ž€? ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋‹ด์•„ ์„ธ๊ณ„๊ณตํ†ต ์ฝ”๋“œ ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์–ด ๋ชจ๋‘๊ฐ€ ์ด ์ง‘ํ•ฉ์œผ๋กœ ์ธํ•ด ์–ธ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜์ž๋Š” ์˜๋„๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด, ์œ ๋‹ˆ์ฝ”๋“œ(unicode)๋Š” ๋ชจ๋“  ๋ฌธ์ž์— index๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ( index ์ฐธ๊ณ : http://www.unicode.org/charts/) โ€ป ํ•œ๊ธ€๊ณผ ๊ฐ™์ด ๋ชจ์Œ, ์ž์Œ, ์ดˆ์„ฑ, ์ค‘์„ฑ์˜ ์กฐํ•ฉ์œผ๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธ€์ž๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋Š” index๋กœ ๋ชจ๋‘ ์ค„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์œ ๋‹ˆ์ฝ”๋“œ๋Š” ์™„์ „ํ•œ ๊ธ€์ž๋ฅผ ์ œ๊ณตํ•ด..

(c++) ๋””์ž์ธ ํŒจํ„ด 01(์‹ฑ๊ธ€ํ†ค, ์ถ”์ƒ ํŒฉํ† ๋ฆฌ, ์˜ต์ €๋ฒ„, ํ”„๋ก์‹œ, ์–ด๋Œ‘ํ„ฐ)
๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป programming/โ—ฝ c, c++2022. 8. 24. 18:38(c++) ๋””์ž์ธ ํŒจํ„ด 01(์‹ฑ๊ธ€ํ†ค, ์ถ”์ƒ ํŒฉํ† ๋ฆฌ, ์˜ต์ €๋ฒ„, ํ”„๋ก์‹œ, ์–ด๋Œ‘ํ„ฐ)

1. ์‹ฑํดํ†ค(singletion) ํŒจํ„ด ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๊ฐ€์ง€๋Š” ํŒจํ„ด์ด๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋“ค์ด ๊ณต์œ ํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ• ๋•Œ ๋“œ๋Š” ๋น„์šฉ์ด ์ค„์–ด๋“œ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜์กด์„ฑ์ด ๋†’์•„์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•  ๋•Œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹จ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๊ฒŒ ๋งŒ๋“ค๋ ค๋ฉด ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด์€ ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค ๊ตฌํ˜„์— ์ ํ•ฉํ•˜๋‹ค. ๋งŽ์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ƒํƒœ ์ •๋ณด, ๋””๋ฒ„๊น… ๋ฐ์ดํ„ฐ, ํŠน์ •ํ•œ ์ง€์ ์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ํด๋ž˜์Šค์ธ ๋กœ๊ฑฐ(logger)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋กœ๊ฑฐ ํด๋ž˜์Šค๋Š” ์‹ฑ๊ธ€ํ„ด์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•: (1). static ๋ฉ”์„œ๋“œ๋งŒ ๊ฐ€์ง€..

728x90
image