๐ฐ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.. ์ด์ 1 ๋ค์