๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฐ42์„œ์šธ/CPP_Module

(3)
[CPP_Module] Orthodox Canonical Form : ๊ธฐ๋ณธ์ƒ์„ฑ์ž, ๋ณต์‚ฌ์ƒ์„ฑ์ž, ํ• ๋‹น์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ, ์†Œ๋ฉธ์ž Orthodox Canonical Form ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ๊ธฐ๋ณธ ์†Œ๋ฉธ์ž ๋ณต์‚ฌ ์ƒ์„ฑ์ž ํ• ๋‹น ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ class A { A(); ~A(); A(const A &a); A &operator= (const A &a); };๋ณต์‚ฌ์ƒ์„ฑ์ž ๋”ฐ๋กœ ์ •์˜ํ•ด์ฃผ์ง€ ์•Š์•„๋„ default ๋ณต์‚ฌ์ƒ์„ฑ์ž ์กด์žฌํ•จ ๊ทธ๋Ÿฐ๋ฐ deep copy๊ฐ€ ์•„๋‹Œ shallow copyํ•จ #include class A { private: int *n; public: A() { n = new int(0); } int getN(){ return *n; } void setN(int num) { *n = num; } }; int main(void) { A a; A b(a); std::cout
CPP_Module_01 ๊ฐ์ฒด ๋ฐฐ์—ด ์ƒ์„ฑ, ํฌ์ธํ„ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…, ํ•จ์ˆ˜ํฌ์ธํ„ฐ, fstream CPP module 01 ex00 zombie ๊ฐ์ฒด๋ฅผ ๋‘๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑ. ์Šคํƒ์— zombie ๊ฐ์ฒด ์ƒ์„ฑ (randomChump()) ํž™์— ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ธฐ(newZombie()) heap์— ๋งŒ๋“ค๊ธฐ : new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ž๋™์œผ๋กœ ์†Œ๋ฉธ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค ์“ฐ๋ฉด delete๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•จ ex01 ๊ฐ์ฒด ๋ฐฐ์—ด ์ƒ์„ฑํ•˜๊ธฐ๋ž‘ ํ• ๋‹น ํ•ด์ œํ•˜๊ธฐ //zombie ๊ฐ์ฒด n๊ฐœ๋ฅผ ๋ฅผ ํ•œ๋ฒˆ์— ํ• ๋‹น Zombie *z = new Zombie[N]; delete [] z; ex02 pointer ์™€ reference ํƒ€์ž…์˜ ์ฐจ์ด ์ดํ•ดํ•˜๊ธฐ int n = 0; int *ptr = &n; int &ref = n; ptr ์•ˆ์—๋Š” n์ด ์ €์žฅ๋˜์–ด์žˆ๋Š” ๊ณณ์˜ ์ฃผ์†Œ๊ฐ’์ด ์žˆ์Œ. ptr์„ ํ†ตํ•ด n์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์„ ๋ฟ ptr๊ณผ n์€ ์ „ํ˜€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜..
CPP_Module_00 CPP module 00 ex00 cpp์˜ ์ž…์ถœ๋ ฅ์€ iostream ์„ ์‚ฌ์šฉํ•œ๋‹ค! ๊ฐ์ฒด์ง€ํ–ฅ์ธ cpp๋Š” stdio ๋ณด๋‹ค ๊ฐ์ฒด์ง€ํ–ฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ iostream์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํŽธํ•˜๋‹ค. ์— ๋Œ€์ž…ํ• ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์ด ๋” ๋‹ค์–‘ํ•˜๊ธฐ ๋•Œ๋ฌธ! ๊ฐ์ฒด๋‚˜ ๊ตฌ์กฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ ๋” ํŽธํ•  ๊ฒƒ์ด๋‹น๋‹น~ Makefile์— CC CFLAGS๊ฐ€ ์•„๋‹Œ CXX CXXFLAGS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  Makefile์˜ OBJS์—์„œ .c:.o์˜ ๊ทœ์น™์„ ๋”ฐ๋กœ ์ •ํ•˜์ง€ ์•Š๊ณ  OBJS = $(SRCS:.cpp=.o) ๋กœ ํ–ˆ์„ ๋•Œ ! ์ปดํŒŒ์ผ ์˜ต์…˜์ด ์ž๋™์œผ๋กœ ๋“ค์–ด๊ฐ€์ง€์ง€ ์•Š์Œ!!! NAME = phonebook SRCS = main.cpp Contact.cpp PhoneBook.cpp OBJS = $(SRCS:.cpp=.o) CXXFLAGS = -Wall -Wextr..