๐คํ๋ก๊ทธ๋๋ฐ ์ธ์ด
(C++๊ธฐ์ดํ๋ฌ์ค 6ํ ํ๋ก๊ทธ๋๋ฐ ์ฐ์ต ์ ๋ต,์๋ฃจ์ ) CHAPTER 06 ๋ถ๊ธฐ ๊ตฌ๋ฌธ๊ณผ ๋ ผ๋ฆฌ ์ฐ์ฐ์ p.368~370 1๋ฒ~5๋ฒ
1๋ฒ #include #include int main() { using namespace std; char ch; do { cout > ch; if (islower(ch)) ch = toupper(ch); else if (isupper(ch)) ch = tolower(ch); cout
C++ ์ ๋ฆฌ - 25 (ํจ์ ํ ํ๋ฆฟ,ํ ํ๋ฆฟ์ ์ค๋ฒ๋ก๋ฉ,ํ ํ๋ฆฟ ์ ํ,๋ช ์์ ํน์ํ,๊ตฌ์ฒดํ์ ํน์ํ,์ค๋ฒ๋ก๋ฉ ๋ถ์,์ ํํ ๋์๊ณผ ์ต์ ์ ๋์)
ํจ์ ํ ํ๋ฆฟ ํจ์ ํ ํ๋ฆฟ์ ํจ์์ ์ผ๋ฐํ ์์ ์ด๋ค. ์ฆ, ํจ์ ํ ํ๋ฆฟ์ int ํ์ด๋ double ํ๊ณผ ๊ฐ์ ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํฐํ์ ํฌ๊ดํ ์ ์๋ ์ผ๋ฐํ์ผ๋ก ํจ์๋ฅผ ์ ์ํ๋ค. ํ ํ๋ฆฟ์ ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํฐํ ๋์ , ์ผ๋ฐํ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๊ฒ ๋๋ฏ๋ก ์ด๊ฒ์ ์ผ๋ฐํ ํ๋ก๊ทธ๋๋ฐ(generic programming)์ด๋ผ๊ณ ํ๋ค. ๋ฐ์ดํฐํ์ด ๋งค๊ฐ๋ณ์์ ์ํด ํํ๋๋ฏ๋ก, ํ ํ๋ฆฟ์ ๋๋ก๋ ๋งค๊ฐ๋ณ์์ ๋ฐ์ดํฐํ(parameterized type)์ด๋ผ๊ณ ํจ. ์ฌ์ฉ ์์ //ํจ์ ํ ํ๋ฆฟ ์ํ template void Swap(Any &a, Any &b); //ํจ์ ํ ํ๋ฆฟ ์ ์ template void Swap(Any &a,Any &b) { Any temp; temp=a; a=b; b=temp; } ํ ํ๋ฆฟ์ ์ค๋ฒ ๋ก๋ฉ ์ผ๋ฐ์ ์ธ ์ค..
C++ ์ ๋ฆฌ - 24 (ํด๋์ค ๊ฐ์ฒด์ ์ฐธ์กฐ,๊ฐ์ฒด,์์,์ฐธ์กฐ,setf(),์ฐธ์กฐ ๋งค๊ฐ๋ณ์๋ ์ธ์ ์ฌ์ฉํ๋๊ฐ?,ํจ์๊ฐ ์ ๋ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฌ์ฉ๋ง ํ๋ ๊ฒฝ์ฐ,ํจ์๊ฐ ํธ์ถ ํจ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ..
ํด๋์ค ๊ฐ์ฒด์ ์ฐธ์กฐ ์ผ๋ฐ์ ์ผ๋ก c++๋, ํด๋์ค ๊ฐ์ฒด๋ฅผ ํจ์์ ์ ๋ฌํ ๋ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํจ ์๋ฅผ ๋ค๋ฉด, string,ostream,istream,ofstream,ifstream ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ทจํ๋ ํจ์๋ค์ ์ฐธ์กฐ ๋งค๊ฐ๋ณ์ ์ฌ์ฉ ๊ฐ๋ฅ ๋ ํ๋์ ๊ฐ์ฒด ๋ ์จ : ๊ฐ์ฒด,์์,์ฐธ์กฐ ์์ : ํ ํด๋์ค์์ ๋ค๋ฅธ ํด๋์ค๋ก ๊ธฐ๋ฅ ์ ๋ฌ์ ๊ฐ๋ฅํ๊ฒ ํ๋ c++ ์ธ์ด์ ๊ธฐ๋ฅ ostream์ ๊ธฐ์ด ํด๋์ค(base class)๋ผ ํ๊ณ ofstream์ ํ์ ํด๋์ค(derived class)๋ผ ํ ๋ ํ์ ํด๋์ค๋ ๊ธฐ์ด ํด๋์ค์ ๋ฉ์๋๋ค์ ์์ํจ. ์ฆ, ofstream ๊ฐ์ฒด๊ฐ precision(),setf()๋ฑ์ ํฌ๋งทํ ๋ฉ์๋์ ๊ฐ์ ๊ธฐ์ด ํด๋์ค์ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉ ๊ฐ๋ฅํจ. ์์์ ๋ ํ ๊ฐ์ง ์ธก๋ฉด์, ๋ฐ์ดํฐํ ๋ณํ ์์ด ..
C++ ์ ๋ฆฌ - 23 (์ฐธ์กฐ ๋ณ์,์ฐธ์กฐ ๋ณ์์ ์ ์ธ,ํจ์ ๋งค๊ฐ๋ณ์๋ก์์ ์ฐธ์กฐ,์ฐธ์กฐ์ ํน์ฑ,lvalue,๊ตฌ์กฐ์ฒด์ ๋ํ ์ฐธ์กฐ,์ฐธ์กฐ๋ฅผ ๋ฆฌํดํ ๋ ์ฃผ์ํ ์ )
์ฐธ์กฐ ๋ณ์ ์ฐธ์กฐ(reference)๋ ๋ฏธ๋ฆฌ ์ ์๋ ์ด๋ค ๋ณ์์ ์ค์ ์ด๋ฆ ๋์ ์ธ ์ ์๋ ๋์ฉ ์ด๋ฆ์ด๋ค. ์ฐธ์กฐ์ ์ฃผ๋ ์ฉ๋๋ ํจ์์ ํ์ ๋งค๊ฐ๋ณ์์ ์ฌ์ฉํ๋ ๊ฒ. ์ฐธ์กฐ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ๋ฉด, ๊ทธ ํจ์๋ ๋ณต์ฌ๋ณธ ๋์ ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ ํจ ์ฐธ์กฐ ๋ณ์์ ์ ์ธ c์ c++์ ๋ณ์์ ์ฃผ์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด & ๊ธฐํธ๋ฅผ ์ฌ์ฉ int rats; int & rodents=rats; // rodents๋ฅผ rats์ ๋์ฉ ์ด๋ฆ์ผ๋ก ๋ง๋ฌ rats์ rodents๋ ๊ฐ์ ๊ฐ๊ณผ ๊ฐ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ ์ฐธ์กฐ๋ ๋ง๋ค ๋ ๋ฐ๋์ ์ด๊ธฐํ๋ฅผ ํด์ผ ํ๊ณ , ์ผ๋จ ์ด๋ค ํน์ ๋ณ์์ ์ฐ๊ฒฐ๋๋ฉด ๊ทธ๊ฒ์ ๊ณ ์ํด์ผ ํจ int rats=101; int & rodents=rats; int bunnies=50; rodents=bunnies; // ..
C++ ์ ๋ฆฌ - 22 (ํจ์๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ,ํจ์ ํฌ์ธํฐ์ ๊ธฐ์ด,ํจ์ ํฌ์ธํฐ์ ๋ฐฐ์ด,c++ ์ธ๋ผ์ธ(inline) ํจ์)
ํจ์๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ ๋ค๋ฅธ ํจ์์ ์ฃผ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ทจํ๋ ํจ์ ์์ฑ ๊ฐ๋ฅ ์ฆ, ์ฒซ ๋ฒ์ฌ ํจ์๊ฐ ๋ ๋ฒ์งธ ํจ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ์ฐพ์๋ด ์คํํ๋๋ก ํ ์ ์๋ค. ์ด ๋ฐฉ์์ ๋ค๋ฅธ ์๊ฐ์ ๋ค๋ฅธ ํจ์์ ์ฃผ์๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ ๋ค. ์ฒซ ๋ฒ์งธ ํจ์๊ฐ ๋ค๋ฅธ ์๊ฐ์ ๋ค๋ฅธ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธ ํจ์ ํฌ์ธํฐ์ ๊ธฐ์ด 1. ํจ์์ ์ฃผ์ ์ป๊ธฐ think()๊ฐ ํจ์๋ผ๋ฉด think๋ ๊ทธ ํจ์์ ์ฃผ์. ํจ์๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌํ๋ ค๋ฉด ํจ์ ์ด๋ฆ๋ง ์ ๋ฌํ๋ฉด ๋จ. process(think); //think()์ ์ฃผ์ ์ ๋ฌ thought(think()); // thought()์ think()์ ๋ฆฌํด๊ฐ ์ ๋ฌ 2. ํจ์๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ์ ์ ์ธ ํจ์๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ๋ฅผ ์ ์ธํ ๋, ๊ทธ ํฌ์ธํฐ๊ฐ ์ง์ํ๋ ํจ์์ ๋ฐ์ดํฐํ์..
C++ ์ ๋ฆฌ - 21 (ํจ์์ C์คํ์ผ์ ๋ฌธ์์ด, ํจ์์ ๊ตฌ์กฐ์ฒด,ํจ์์ string ํด๋์ค ๊ฐ์ฒด, ํจ์์ array ๊ฐ์ฒด, ์ฌ๊ทํธ์ถ)
ํจ์์ C ์คํ์ผ์ ๋ฌธ์์ด C ์คํ์ผ ๋ฌธ์์ด์ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ๋ ํจ์ -๋ฌธ์์ด์ ๋ํ๋ด๋ ๋ฐฉ๋ฒ 1. charํ์ ๋ฐฐ์ด 2. ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ ๋ฌธ์์ด ์์ (๋ฌธ์์ด ๋ฆฌํฐ๋ด) 3. ๋ฌธ์์ด์ ์ฃผ์๋ก ์ค์ ๋ char ํ์ ์ง์ํ๋ ํฌ์ธํฐ ์ธ ๊ฐ์ง ๋ชจ๋ charํ์ ์ง์ํ๋ ํฌ์ธํฐ ์ด๋ฏ๋ก ๋ชจ๋ ๋ฌธ์์ด ์ฒ๋ฆฌ ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํจ char ghost[15]="galloping"; cout
C++ ์ ๋ฆฌ - 20 (ํฌ์ธํฐ์ const, ํจ์์ 2์ฐจ์ ๋ฐฐ์ด)
ํฌ์ธํฐ์ const const๋ผ๋ ํค์๋๋ ํฌ์ธํฐ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ๋๋ค. 1. ์์ ๊ฐ์ฒด๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ๋ฅผ ๋ง๋๋ ๊ฒ 2. ํฌ์ธํฐ ์์ ์ ์์๋ก ๋ง๋๋ ๊ฒ int age = 39; const int * pt = &age; *pt=20; // pt๋ const int๋ฅผ ์ง์ํ๊ณ ์์ผ๋ฏ๋ก ์ฌ์ฉ ๋ถ๊ฐ age=20; //age๋ const๋ก ์ ์ธ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ ๊ฐ๋ฅ const ๋ณ์์ ์ฃผ์๋ฅผ const๋ฅผ ์ง์ํ๋ ํฌ์ธํฐ์ ๋์ ๊ฐ๋ฅ const ๋ณ์์ ์ฃผ์๋ฅผ ์ผ๋ฐ ํฌ์ธํฐ์ ๋์ ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ const float g_earth=9.80; const float *pe=&g_earth; //์ฌ์ฉ ๊ฐ๋ฅ const float g_moon=1.63; float *pm=&g_moon; //์ฌ์ฉ ๋ถ๊ฐ int..
C++ ์ ๋ฆฌ - 19 (ํจ์์ ๊ธฐ์ด, ํจ์ ์ ์, ํจ์ ์ํ์ ๊ตฌ๋ฌธ ๊ท์น, ํจ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ผ๋ก ์ ๋ฌํ๊ธฐ, ํฌ์ธํฐ์ ๋ฐฐ์ด์ ์ฒ๋ฆฌํ๋ ํจ์, ๋ฐฐ์ด์ ๋ด์ฉ ์ถ๋ ฅ๊ณผ const๋ก ๋ณดํธํ๊ธฐ)
ํจ์์ ๊ธฐ์ด(๋ณต์ต) c++์์ ํจ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ์ง์ ํจ์ ์ ์ ์ ๊ณต ํจ์ ์ํ ์ ๊ณต ํจ์ ํธ์ถ ํจ์ ์ ์ voidํ ํจ์ : ๋ฆฌํด ๊ฐ์ด ์๋ ํจ์ void functionName(parameterList) { statements(s) return; //์๋ต ๊ฐ๋ฅ } parameterList๋ ์ด ํจ์์ ์ ๋ฌ๋๋ ๋งค๊ฐ๋ณ์(parameter ๋๋ argument)์ ๋ฐ์ดํฐํ๊ณผ ๊ฐ์๋ฅผ ์ง์ ๋ฆฌํด ๊ฐ์ด ์๋ ํจ์๋ ์์ ์ ํธ์ถํ ํจ์์๊ฒ ๋๋๋ ค ์ค ๋ฆฌํด ๊ฐ์ ๋ง๋ฆ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ํ์ typeName functionName(parameterList) { statements(s) return value; //value๋ typeName ํ์ผ๋ก ๋ณํ๋จ. } ์ ์, ๋ถ๋ ์์ ์ ์, ํฌ์ธํฐ, ๊ตฌ์กฐ์ฒด์ ๊ฐ์ฒด..
C++ ์ ๋ฆฌ - 18 (ํ ์คํธ ํ์ผ์ ์ฐ๊ธฐ,์ฝ๊ธฐ, ํ์ผ ์ ๋ ฅ)
ํ ์คํธ ํ์ผ์ ์ฐ๊ธฐ ํ์ผ ์ถ๋ ฅ fstream ํค๋ ํ์ผ์ ํฌํจ์์ผ์ผ ํ๋ค. fstream ํค๋ ํ์ผ์ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋ ofstream ํด๋์ค๋ฅผ ์ ์ํ๋ค. ํ๋ ์ด์์ ofstream ๋ณ์ ๋๋ ๊ฐ์ฒด๋ฅผ ์ ์ธํ ํ์๊ฐ ์๋ค. ์ผ๋ฐ์ ์ธ ์ด๋ฆ ์ง๊ธฐ ๊ด๋ก๋ฅผ ์ค์ํ๋ ํ, ์ฌ์ฉ์๋ ์ํ๋ ์ด๋ฆ์ ์ง์ ๊ฐ๋ฅ std ์ด๋ฆ ๊ณต๊ฐ์ ์ง์ ํด์ผ ํจ, ์๋ฅผ ๋ค๋ฉด, ofstream๊ณผ ๊ฐ์ ์์๋ค์ ๋ํด using ์ง์์ ๋๋ std:: ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ํน์ ofstream ๊ฐ์ฒด์ ํน์ ํ์ผ์ ์ฐ๊ฒฐ์ํฌ ํ์๊ฐ ์๋ค. ๊ทธ๋ ๊ฒ ํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์, open() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ. ํ์ผ์ ๋ค๋ฃจ๋ ์์ ์ด ๋๋๋ฉด, close() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ ํ์ผ์ ๋ซ์์ผ ํ๋ค. ofstream ๊ฐ์ฒด๋ฅผ filename; fout.o..
C++ ์ ๋ฆฌ - 17 (๋ ผ๋ฆฌํฉ OR ์ฐ์ฐ์ (||), ๋ ผ๋ฆฌ๊ณฑ AND ์ฐ์ฐ์, ๋ ผ๋ฆฌ๋ถ์ NOT ์ฐ์ฐ์ (!), ๋ ผ๋ฆฌ ์ฐ์ฐ์์ ๋์ฒด ํ๊ธฐ, ? : ์ฐ์ฐ์, switch ๊ตฌ๋ฌธ, break์ continue ๊ตฌ๋ฌธ)
๋ ผ๋ฆฌํฉ OR ์ฐ์ฐ์ (||) (expr1||expr2) ์ ๊ฐ expr1==true expr1==false expr2==ture true true expr2=false false false ๋ ๊ฐ์ ํํ์ ์ค์์ ์ ์ด๋ ์ด๋ ํ๋๊ฐ true ์ด๊ฑฐ๋ 0์ด ์๋๋ฉด ์ ์ฒด ํํ์์ด true๊ฐ ๋จ C++์์ || ์ฐ์ฐ์๋ ์ํ์ค ํฌ์ธํธ๋ก ์์ฉํจ ์ข๋ณ์ ์ง์๋ ๊ฐ์ ๋ณ๊ฒฝ์ ์ฐ๋ณ์ด ํ๊ฐ๋๊ธฐ ์ ์ผ์ด๋จ ex) i++