ํ‹ฐ์Šคํ† ๋ฆฌ

๐Ÿถ ๐Ÿพ
๊ฒ€์ƒ‰ํ•˜๊ธฐ

๋ธ”๋กœ๊ทธ ํ™ˆ

๐Ÿถ ๐Ÿพ

jun-13.tistory.com/m

๋‚˜์˜ ์„ฑ์žฅ ์ผ๊ธฐ.

๊ตฌ๋…์ž
4
๋ฐฉ๋ช…๋ก ๋ฐฉ๋ฌธํ•˜๊ธฐ

์ฃผ์š” ๊ธ€ ๋ชฉ๋ก

  • [CPP Module] 08 Exercise 00: Easy find easyfind ๋ผ๋Š” ํ…œํ”Œ๋ฆฟํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผํ•œ๋‹ค. ํ•ด๋‹นํ•จ์ˆ˜๋Š” container์™€ value๋ฅผ ๋ฐ›๊ณ  container์•ˆ์— ํ•ด๋‹น value๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹นํ•˜๋Š” value์œ„์น˜์˜ iterator๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋งŒ์•ฝ ์กด์žฌํ•˜์ง€์•Š๋Š”๋‹ค๋ฉด error ์ฒ˜๋ฆฌ ํ•„์š”. iterator() typename T::iterator iter; iter = std::find(container.begin(), container.end(), value); std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [CPP Module] 07 C++ templates https://jun-13.tistory.com/148 [C++] templates C++ templates ์ฝ”๋“œ์˜ ์ผ๋ฐ˜ํ™”์™€ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ // templates function template T add(T a, T b) { return a + b; } int main() { // intํ˜• ์ธ์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ std::cout moaoh.dev Exercise 00: Start with a few functions what is templates?? // templates function template T add(T a, T b) { return a + b; } int main() { // intํ˜• ์ธ์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [C++] templates C++ templates ์ฝ”๋“œ์˜ ์ผ๋ฐ˜ํ™”์™€ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ // templates function template T add(T a, T b) { return a + b; } int main() { // intํ˜• ์ธ์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [CPP Module] 06 C++ casts https://jun-13.tistory.com/146 [C++] casts C++ casts c++์—๋Š” ๋‹ค์–‘ํ•œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž(๋˜๋Š” ์บ์ŠคํŠธ ์—ฐ์‚ฐ์ž)๊ฐ€ ์žˆ๋‹ค. static_cast reinterpret_cast dynamic_cast const_cast ์œ„์™€ ๊ฐ™์ด ํฌ๊ฒŒ 4๊ฐ€์ง€์˜ cast๋“ค์ด ์กด์žฌํ•œ๋‹ค. static_cast ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋กœ, moaoh.dev Exercise 00: Conversion of scalar static_cast ํ˜•์‹ ๊ฐ„์˜ ํ˜• ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž์ด๋‹ค. int i = 42; double d = static_cast(i); // int๋ฅผ double๋กœ ๋ณ€ํ™˜ double d = 3.14; int i = static_cast(d.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [C++] casts C++ casts c++์—๋Š” ๋‹ค์–‘ํ•œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž(๋˜๋Š” ์บ์ŠคํŠธ ์—ฐ์‚ฐ์ž)๊ฐ€ ์žˆ๋‹ค. static_cast reinterpret_cast dynamic_cast const_cast ์œ„์™€ ๊ฐ™์ด ํฌ๊ฒŒ 4๊ฐ€์ง€์˜ cast๋“ค์ด ์กด์žฌํ•œ๋‹ค. static_cast ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋กœ, ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ์•ˆ์ „ํ•œ ํ˜• ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž… ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํ˜• ๋ณ€ํ™˜์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์†์‹ค์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #include intmain() { double d = 3.14; int i = static_cast(d); // double์„ int๋กœ ๋ณ€ํ™˜ std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [CPP Module] 05 ๋ฐ˜๋ณต๊ณผ ์˜ˆ์™ธ์ฒ˜๋ฆฌ (Repetition and Exceptions) https://jun-13.tistory.com/144 [C++] Repetition and Exceptions Repetition and Exceptions๋ž€? ์˜ˆ์™ธ ํด๋ž˜์Šค ํด๋ž˜์Šค์•ˆ์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ํ™•์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํด๋ž˜์Šค class Bureaucrat { public: class GradeTooHighException : public std::exception { public: const char *wha moaoh.dev Ex00: Mommy, when I grow up, I want to be a bureaucrat! ์˜ˆ์™ธ์ฒ˜๋ฆฌ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๊ฐœ๋…์— ๋Œ€ํ•ด ๊ธฐ์ดˆ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๋Š” ํŒŒํŠธ bureaucrat ํด๋ž˜์Šค co.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [C++] Repetition and Exceptions Repetition and Exceptions๋ž€? ์˜ˆ์™ธ ํด๋ž˜์Šค ํด๋ž˜์Šค์•ˆ์—์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์„ ํ™•์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ํด๋ž˜์Šค class Bureaucrat { public: class GradeTooHighException : public std::exception { public: const char *what() const throw() { return ("error"); } }; **std::exception**์€ C++ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ์˜ˆ์™ธ ํด๋ž˜์Šค ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค. #include "Bureaucrat.hpp" intmain() { try { b.setGrade(0); } catch (std::exception &e) { std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2024. 3. 13.
  • [C++] interfaces ( ์ธํ„ฐํŽ˜์ด์Šค ) interfaces ( ์ธํ„ฐํŽ˜์ด์Šค ) "ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์„ ์•ฝ์†ํ•œ ์ถ”์ƒ ํ˜•์‹”์ด๋ผ๊ณ  ๋ช…์‹œ๊ฐ€ ๋˜์–ด์žˆ๋‹ค. #include class Ihello { public: virtual void print() = 0; }; class korean : public Ihello { public: virtual void print() { std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 13.
  • [C++] abstract class (์ถ”์ƒ ํด๋ž˜์Šค) abstract class (์ถ”์ƒ ํด๋ž˜์Šค) ํ•˜๋‚˜ ์ด์ƒ์˜ ์ˆœ์ˆ˜ ๊ฐ€์ƒ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ์ถ”์ƒ ํด๋ž˜์Šค๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. class Test { private: public: virtual void sound() = 0; // ์ˆœ์ˆ˜๊ฐ€์ƒํ•จ์ˆ˜ }; class Test { private: public: virtual void sound() = 0; }; class Copy : public Test { public: virtual void sound() { std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 13.
  • [C++] ์„œ๋ธŒ ํƒ€์ž… ๋‹คํ˜•์„ฑ(Subtype Polymorphism) ์˜ค๋ฒ„๋กœ๋”ฉ์ด๋‚˜ ๋Ÿฐํƒ€์ž„ ๋‹คํ˜•์„ฑ์œผ๋กœ๋„ ๋ถˆ๋ฆฐ๋‹ค. class Animal { // ... }; class Cat : public Animal { // ... }; int main(void) { const Animal* temp = new Cat(); return 0; } ์ƒ์†๋ฐ›์€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋งค์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์„ ์„œ๋ธŒํƒ€์ž… ๋‹คํ˜•์„ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค๊ณ ํ•œ๋‹ค. https://github.com/utilForever/modern-cpp-tutorial/blob/master/Articles/The%20Four%20Polymorphisms%20in%20C%2B%2B.md ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 13.
  • [CPP Module] 04 ๊ธฐ๋ณธ ๊ทœ์น™ Orthodox Canonical Form ์ƒ์„ฑ์ž ๋ณต์‚ฌ ์ƒ์„ฑ์ž ๋ณต์‚ฌ ํ• ๋‹น ์ƒ์„ฑ์ž ์†Œ๋ฉธ์ž ์ด 4๊ฐ€์ง€๋ฅผ ํฌํ•จ include guards ์ฝ”๋“œ ๋ถ„ํ• ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํŒŒ์ผ ์‚ฌ์šฉ๊ฐ€๋Šฅ C++ ์—ญ์‹œ new๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ๋ˆ„์ˆ˜๋ฐฉ์ง€๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค ex00 : Polymorphism ์ƒ์†์ด๋ผ๋Š” ๊ฐœ๋…์„ ์‘์šฉํ•ด์„œ ์จ๋ณด๋Š” ๊ณผ์ œ new c์–ธ์–ด์˜ malloc์ด๋‚˜ free์™€ ๋˜‘๊ฐ™์ด c++์—๋„ ๋™์ ํ• ๋‹น์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•ด์ง€ํ•˜๋Š” ๊ฒƒ์ด ์กด์žฌํ•œ๋‹ค. new์˜ ๊ฒฝ์šฐ์—๋Š” ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , delete์˜ ๊ฒฝ์šฐ์—๋Š” ์†Œ๋ฉธ์ž๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. class* a = new class; // ์ƒ์„ฑ์ž ํ˜ธ์ถœ . . . delete a; // ์†Œ๋ฉธ์ž ํ˜ธ์ถœ ์œ„์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•ด์ œ.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 13.
  • [C++] endl ๊ณผ ‘\n’ ์ฐจ์ด์  endl ๊ณผ ‘\n’ ์ฐจ์ด์ std::cout ๊ณต๊ฐ์ˆ˜ 1 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 2.
  • [C++] Inheritance ( ์ƒ์† ), polymorphism ( ๋‹คํ˜•์„ฑ ) ํ•˜๋‚˜์˜ ํƒ€์ž…์— ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ ๋‹คํ˜•์„ฑ์ด๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ๊ธฐ์ „์— ๋‹คํ˜•์„ฑ๊ณผ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ด€๋ จ์ด ์žˆ๋Š” ์ƒ์†์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ดํ•ด๋ฉด ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. Inheritance ( ์ƒ์† ) ๋ถ€๋ชจํด๋ž˜์Šค์— ์žˆ๋Š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋‚˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋“ค์„ ๋ฌผ๋ ค ๋ฐ›์•„์„œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ class Parent { public: ... }; class Child : public Parent { public: ... } ํด๋ž˜์Šค์—์„œ๋Š” ์œ„์™€๊ฐ™์ด ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. parent๋ผ๋Š” class๋ฅผ child๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ( ์ด๋•Œ ์ƒ์†์„ ๋ฐ›๋Š” ํด๋ž˜์Šค๋ฅผ ์ž์‹ํด๋ž˜์Šค๋ผ๊ณ  ์ด์•ผ๊ธฐํ•˜๊ณ  ์ƒ์†์„ ํ•ด์ฃผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋ถ€๋ชจํด๋ž˜์Šค๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค. ) ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ƒ์†์„ ๋ฐ›์œผ๋ฉด ์ƒ์†์„ ํ•ด.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 2.
  • [C++] operator overloading ( ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ ) operator overriding ( ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋ผ์ด๋”ฉ ) ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ์•Œ์•„๊ฐ€๊ธฐ์ „์— ์šฐ๋ฆฌ๋Š” ํด๋ž˜์Šค์—์„œ์˜ ์—ฐ์‚ฐ์ž์žฌ์ •์˜๋ผ๋Š” ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผํ•œ๋‹ค. ์—ฐ์‚ฐ์ž ์žฌ์ •์˜ int a = 3; int b = 5; c = a + b // // class ============= class a; class b; c = a + b // ์œ„์™€ ๊ฐ™์ด ํ‰๋ฒ”ํ•˜๊ฒŒ int ํ˜•์‹๋ผ๋ฆฌ์˜ ์—ฐ์‚ฐ์€ ๊ทธ๋ƒฅ ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ์ง„ํ–‰์„ ํ•  class๋ผ๋ฆฌ์˜ ์—ฐ์‚ฐ์€ class ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•ด์•ผํ•˜๋Š”์ง€ ์–ด๋– ํ•œ ๊ฐ์ฒด๋ผ๋ฆฌ ๋”ํ• ๊ฑด์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ class ๋ผ๋ฆฌ ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š” ๋”ฐ๋กœ ์ •์˜๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค. // ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์„ ์‚ฌ์šฉ classclass::operator + ( const class& other ) { class temp; temp = this->value + other.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 9. 2.
  • [CPP Module] 03 ํ•„์š”ํ•œ ๊ฐœ๋…์ •๋ฆฌ ๊ธฐ๋ณธ ๊ทœ์น™ Orthodox Canonical Form module 02์™€ ๋งˆ์นœ๊ฐ€์ง€๋กœ ์ƒ์„ฑ์ž ๋ณต์‚ฌ ์ƒ์„ฑ์ž ๋ณต์‚ฌ ํ• ๋‹น ์ƒ์„ฑ์ž ์†Œ๋ฉธ์ž ์ด 4๊ฐ€์ง€๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. include guards ์ฝ”๋“œ ๋ถ„ํ• ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํŒŒ์ผ ์‚ฌ์šฉ๊ฐ€๋Šฅ C++ ์—ญ์‹œ new๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•œ ๋ˆ„์ˆ˜๋ฐฉ์ง€๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค ex00 endl ๊ณผ ‘\n’ ์ฐจ์ด์  ex00์— ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ๊ฐ‘์ž๊ธฐ endl๊ณผ '\n'์˜ ์ฐจ์ด๊ฐ€ ๊ถ๊ธˆํ•ด์ ธ์„œ ์•Œ์•„๋ณด๊ฒŒ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ์•„๋ณด๋‹ˆ std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 7. 29.
  • [CPP Module] 02 ํ•„์š”ํ•œ ๊ฐœ๋…์ •๋ฆฌ New rules cpp02๋ฅผ ์ง„ํ–‰ํ• ๋•Œ๋Š” ๋”ฐ๋กœ ๋ช…์‹œ๊ฐ€ ๋˜์ง€์•Š์€ ๊ฒฝ์šฐ์—๋Š” 4๊ฐ€์ง€๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค๊ณ  ๋ช…์‹œ๊ฐ€ ๋˜์–ด์žˆ๋‹ค. Default constructor ( ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ) ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ธ์Šคํ„ด์Šคํ™”๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ (์ƒ์„ฑ์ž๋กœ ์ง€์ •์„ ํ• ๋ ค๋ฉด class๋ช…๊ณผ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค. ๋ฐ›๋Š”์ธ์ž x) class Fixed { private: intvalue; static const int integer = 8; public: // **Default constructor** Fixed(); } ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ๋•Œ Default constructor๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ  ๊ทธ๊ฒƒ์— ํ•ด๋‹น๋˜๋Š” ๋‚ด์šฉ์ด ์‹คํ–‰๋œ๋‹ค. Copy constructor ( ๋ณต์‚ฌ ์ƒ์„ฑ์ž ).. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 0 2023. 7. 25.
  • [CPP Module] 01 ํ•„์š”ํ•œ ๊ฐœ๋…์ •๋ฆฌ ex00 ์ƒ์„ฑ์ž (Constructor) ์ƒ์„ฑ์ž (Constructor) ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ธ์Šคํ„ด์Šคํ™”๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ์†Œ๋ฉธ์ž (Destructor) ์†Œ๋ฉธ์ž (Destructor) ๊ฐ์ฒด๊ฐ€ ์†Œ๋ฉธ๋  ๋•Œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ 2๊ฐ€์ง€์— ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ๋ฐฐ์›Œ ๋ณผ ์ˆ˜ ์žˆ๋˜ ํŒŒํŠธ ex01 ์ด์ „์— ๋งŒ๋“ค์—ˆ๋˜ zombie class๋“ค์„ ๋ฐฐ์—ด๋กœ๋„ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ. ex02 ์ฐธ์กฐ๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ• ์ค„ ์•„๋Š”์ง€ ๋ฌผ์–ด๋ดค๋˜ ํŒŒํŠธ std::string str = "HI THIS IS BRAIN"; std::string* PTR = &str; std::string& REF = str; ex03 gettype() ํ•จ์ˆ˜๋Š” ์ „๋‹ฌ๋ฐ›์€ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋ฐ˜ํ™˜ (const ํ˜•์‹) settype(.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 1 2021. 9. 16.
  • [CPP Module] 00 ๊ฐœ๋… ์ •๋ฆฌ ex00 ์ „์ฒด์ ์œผ๋กœ cpp๋ฅผ ๋“ค์–ด๊ฐ€๊ธฐ์ „์— ํŠœํ† ๋ฆฌ์–ผ ๋А๋‚Œ. ์ž…๋ ฅ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์†Œ๋ฌธ์ž๋“ค์„ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์„œ ์ถœ๋ ฅ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. $>./megaphone "shhhhh... I think the students are asleep..." SHHHHH... I THINK THE STUDENTS ARE ASLEEP... $>./megaphone Damnit " ! " "Sorry students, I thought this thing was off." DAMNIT ! SORRY STUDENTS, I THOUGHT THIS THING WAS OFF. $>./megaphone * LOUD AND UNBEARABLE FEEDBACK NOISE * $> ex01 PhoneBook์— ๊ฒฝ์šฐ์—๋Š” class ํ˜•์‹์œผ๋กœ.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 3 2021. 9. 15.
  • [C++] Orthodox Canonical Form ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ์ง€์ผœ์•ผํ•˜๋Š” ์ •ํ†ต ํด๋ž˜์Šค ํ˜•์‹์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ๋””ํดํŠธ ์ƒ์„ฑ์ž(Default constructor) ๋ณต์‚ฌ ์ƒ์„ฑ์ž(Copy constructor) ํ• ๋‹น ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ(Copy assignment operator) ์†Œ๋ฉธ์ž(Destructor) ์ƒ์„ฑ์ž (Constructor) ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ์ธ์Šคํ„ด์Šคํ™”๋  ๋•Œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” ํŠน์ˆ˜ํ•œ ์ข…๋ฅ˜์˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ class Zombie { private: std::string name; public: // ์ƒ์„ฑ์ž. Zombie(std::string _name = "no_name") { name = _name; } // ์†Œ๋ฉธ์ž. ~Zombie() { std::cout ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 1 2021. 9. 14.
  • [Philosophers] ๊ฐœ๋…์ •๋ฆฌ ์šฉ์–ด ์ •๋ฆฌ ์Šค๋ ˆ๋“œ(Thread) ์ฒ ํ•™์ž. ํ๋ฆ„์˜ ๋‹จ์œ„. ๋™์ž‘์„ ํ•˜๋Š” ๊ฒƒ. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ(multithread) ์—ฌ๋Ÿฌ ๋ช…์˜ ์ฒ ํ•™์ž. ํ”„๋กœ์„ธ์Šค์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ, ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ. ์–ธ์–ด์— ๋”ฐ๋ผ ํŠน์„ฑ์— ์ฐจ์ด๊ฐ€ ์žˆ์ง€๋งŒ ์˜ˆ์ธก์ด ์–ด๋ ค์›Œ์„œ ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚จ๋‹ค. ๋ฎคํ…์Šค(Mutex) ํฌํฌ. ํ•œ์ •๋˜์–ด์žˆ๋Š” ๊ณต์œ ์ž์›์„ ์–ด๋–ป๊ฒŒ ๋ฐฐ๋ถ„ํ•ด์„œ ์‚ฌ์šฉ์„ ํ•  ๊ฒƒ์ธ์ง€, ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ. key๊ฐ’์„ ์ค˜์„œ ํ• ๋‹น์‹œํ‚ค๋Š” ๋ฐฉ์‹. ๋จน๊ธฐ ์œ„ํ•ด์„  ๋ฎคํ…์Šค๊ฐ€ 2๊ฐœ๊ฐ€ ํ•„์š”๋กœ ํ•˜๊ณ , ์˜†์ž๋ฆฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋ฎคํ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉด ๋‚˜๋Š” ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ฎคํ…์Šค๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ทธ๋•Œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰. ํฌํฌ (๋ฎคํ…์Šค)๋ฅผ 2๊ฐœ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ๋งŒ ์ฒ ํ•™์ž๋“ค์€ ๋จน์„ ์ˆ˜ ์žˆ๋‹ค. (์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ž‘๋œ๋‹ค.) ์„ธ๋งˆํฌ์–ด(Semaphore) ๋ฎคํ…์Šค์™€ ๋น„์Šทํ•˜์ง€๋งŒ .. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 1 2021. 9. 4.
  • [Philosophers] ์‚ฌ์šฉ ํ•จ์ˆ˜ ์ •๋ฆฌ memset # include void * memset ( void * ptr, int value, size_t num ); ๋ฉ”๋ชจ๋ฆฌํ•˜๋‚˜๋ฅผ ์›ํ•˜๋Š” value๋กœ ์ „๋ถ€ ์ดˆ๊ธฐํ™”. printf # include int printf(const char* format, ...); ์›ํ•˜๋Š” ๊ฐ’์„ ์ถœ๋ ฅํ•ด์ฃผ๋Š” ํ•จ์ˆ˜. malloc # include void * malloc(size_t size); ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น. free # include void free(void *ptr); ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œ. write # include ssize_t write(int fd, const void *buf, size_t nbyte); fd : ํŒŒ์ผ ์ „์†ก์˜์—ญ. *buf : ์ „์†กํ•  ๋ฐ์ดํ„ฐ. nbyte : ์ „์†กํ•  ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ. usleep # i.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 1 2021. 9. 3.
  • [ft_services] ๋ช…๋ น์–ด ์ •๋ฆฌ ๋ช…๋ น์–ด ์ •๋ฆฌ ํ˜„์žฌ ๋Œ์•„๊ฐ€๊ณ ์žˆ๋Š” ์„œ๋ฒ„์— ์ •๋ณด๋“ค์„ ๋ณด์—ฌ์คŒ. kubectl get * kubectl get all kubectl get serivces kubectl get pods ์„œ๋ฒ„๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ์ƒํƒœ์—์„œ ํŒŒ์ผ ๋ณ€๊ฒฝํ•˜๊ธฐ. // ํ˜„์žฌ ํŒŒ์ผ ์ œ๊ฑฐ. kubectl delete -f () //ํ˜„์žฌ ํŒŒ์ผ ์ €์žฅ. kubectl apply -f () ex) kubectl apply -f srcs/yamls/mysql.yaml ๋Œ์•„๊ฐ€๊ณ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ. kubectl exec -it (kubectl get pods : value) -- /bin/sh ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ํ•ญ์ƒ log ํ™•์ธํ•ด์„œ ๋ถ„์„ํ•ด๋ณด๊ธฐ. kubectl logs -f ${grafana_pod_id} kubectl logs -f (.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 2 2021. 9. 2.
  • [ft_services] ๊ฐœ๋… ์ •๋ฆฌ ๊ฐœ๋… ์ •๋ฆฌ METALLB ๊นกํ†ต LoadBalancer์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๊ฒƒ LoadBalancer ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์„ ๋•Œ ๊ฐ ์„œ๋ฒ„๊ฐ€ ํ•  ์ผ์„ ๋‚˜๋ˆ„์–ด ํ• ๋‹นํ•ด์ฃผ๋Š” ๊ฒƒ Nginx ์›น์„œ๋ฒ„ port : 80/443/22 22 port๋Š” ํ˜„์žฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์—ฌ์„œ 80 port(http)๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ 443 port(https)์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์— ์žˆ์–ด์„œ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์—ญํ• . ํ”„๋ก ํŠธ ์—”๋“œ. MySQL ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค (RDB) port : data ์›นํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด๋“ค์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• . ๋ฐฑ์—”๋“œ PhpMyAdmin MySQL์„ ๊ด€๋ฆฌํ•  ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ. prot : 5000 MySQL์˜ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ. MySQL์— ๋‹ด๊ธด ์ •๋ณด๋“ค.. ๊ณต๊ฐ์ˆ˜ 0 ๋Œ“๊ธ€์ˆ˜ 1 2021. 9. 1.
  • [cub3D] ๊ตฌํ˜„ ๊ณผ์ •์„ ์ •๋ฆฌ cub3d ๊ตฌํ˜„ ๊ณผ์ •์„ ์ •๋ฆฌ. github GitHub - moaoh/cub3D Contribute to moaoh/cub3D development by creating an account on GitHub. github.com ์ž…๋ ฅ๊ฐ’์— ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ง„ํ–‰ํ•˜๊ธฐ. mlx๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งต์„ ํ‘œํ˜„ ํ•ด๋ณด๊ธฐ. mlx๋ฅผ ํฌํ•จํ•˜์—ฌ ์ปดํŒŒ์ผํ•˜๊ธฐ [ 2021. 01. 23 ] 1. img ํŒŒ์ผ์„ ๋ฐ›์•„์„œ ๋งต์— ํ‘œํ˜„ํ•˜๊ธฐ. 2. ๋™์„œ๋‚จ๋ถ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๊ฐ’๋“ค์„ ์ค˜๋ณด๊ธฐ. [ 1. img ํŒŒ์ผ์„ ๋ฐ›์•„์„œ ๋งต์— ํ‘œํ˜„ํ•˜๊ธฐ. ] void *mlx_png_file_to_image(void *xvar, char *file, int *width, int *height) void *mlx_xpm_file_to_image(void *xvar,char *f.. ๊ณต๊ฐ์ˆ˜ 1 ๋Œ“๊ธ€์ˆ˜ 4 2020. 12. 1.
  • [ft_printf] ์ •๋ณด ์ •๋ฆฌ ๋ช‡๋ช‡ ๊ฐœ์— ํ˜•์‹์„ ์ œ์™ธํ•œ printf๋ฅผ ๋˜‘๊ฐ™์ด ๊ตฌํ˜„ํ•œ๋‹ค. : ( "cspdiuxX%" ) : ( - , 0 , . , * ) github GitHub - k010103/ft_printf.a Contribute to k010103/ft_printf.a development by creating an account on GitHub. github.com minus , width 2๊ฐœ ๊ด€์—ฌ. va_arg ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ va_arg(ap, char) ์€ ๋ถˆ๊ฐ€๋Šฅํ•œ ํ˜•์‹์ด๋ฏ€๋กœ, va_arg(ap, int) ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. minus , width 2๊ฐœ ๊ด€์—ฌ. va_arg(ap, char *) ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์•ผ ํ•œ๋‹ค. ๋ช‡๋ช‡ ๊ฐœ.. ๊ณต๊ฐ์ˆ˜ 1 ๋Œ“๊ธ€์ˆ˜ 1 2020. 10. 30.
    ๋ฌธ์˜์•ˆ๋‚ด
    • ํ‹ฐ์Šคํ† ๋ฆฌ
    • ๋กœ๊ทธ์ธ
    • ๊ณ ๊ฐ์„ผํ„ฐ

    ํ‹ฐ์Šคํ† ๋ฆฌ๋Š” ์นด์นด์˜ค์—์„œ ์‚ฌ๋ž‘์„ ๋‹ด์•„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

    ยฉ Kakao Corp.