π€νλ‘κ·Έλλ° μΈμ΄
C++ μ 리 - 31 (μΆμν λ°μ΄ν°ν(abstract data type, ADT), μ°μ°μ μ€λ²λ‘λ©, νλ λμ λμ )
μΆμν λ°μ΄ν°ν(abstract data type, ADT) μ€νμ νΉμ±μ μΌλ°μ μ΄κ³ μΆμμ μΈ λ°©μμΌλ‘ μ΄ν΄λ³΄μ. λΉ μ€ν μμ± κ°λ₯ μ€νμ κΌλκΈ°μ νλͺ© μΆκ° κ°λ₯ μ€νμ κΌλκΈ°μμ νλͺ© μμ κ°λ₯ μ€νμ΄ κ°λ μ°¨μλμ§ κ²μ¬ κ°λ₯ μ€νμ΄ λΉμ΄μλμ§ κ²μ¬ κ°λ₯ ν΄λμ€μ νμ© μ°μ°μ μ€λ²λ‘λ© μ°μ°μ μ€λ²λ‘λ©μ c++κ° κ°μ§ λ€ν νΉμ±μ ν μμ΄λ€. μ°μ°μ μ€λ²λ‘λ©μ, c++ μ°μ°μλ€μ λ€μ€μ μΈ μλ―Έλ₯Ό λΆμ¬νλ κ²μ΄λ€. c++μμλ μ°μ°μ μ€λ²λ‘λ©μ μ¬μ©μ μ μ λ°μ΄ν°ν κΉμ§ νμ₯ν μ μλ€. μλ₯Ό λ€μ΄ 2κ°μ λ°°μ΄μ λνλ κ²μ μμ£Ό μ¬μ΄ κ³μ°μ΄λ€. for(int i=0;i(ν΄λμ€ λ©€λ² μ κ·Ό ν¬μΈν° μ°μ°μ) νλ λμ λμ νλ λλ λ€μκ³Ό κ°μ μΈ κ°μ§ ννλ‘ μ¬μ©λ¨. νλ λ ν¨μ νλ λ ν΄λμ€ νλ λ λ©€λ²..
C++ μ 리 - 30 (μμ±μ μ¬μ©νκΈ°, λν΄νΈ μμ±μ, νκ΄΄μ, c++11μ 리μ€νΈ μ΄κΈ°ν, const λ©€λ² ν¨μ, this ν¬μΈν°, κ°μ²΄ λ°°μ΄, ν΄λμ€ μ¬μ© λ²μ, λ²μκ° μ ν΄μ§ μ΄κ±°(c++11))
μμ±μ μ¬μ©νκΈ° 1. Stock food = Stock("World Cabbage",250,1.25); 2. Stock garment("Furry Mason",50,2.5); newλ₯Ό μ¬μ©ν λ μμ±μ μ¬μ©νλ λ² Stock *pstock = new Stock("Ele G",18,19.0); μμ±μλ κ°μ²΄μ μν΄ νΈμΆλλ κ²μ΄ μλλΌ, κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©λλ€. λν΄νΈ μμ±μ λν΄νΈ μμ±μλ λͺ μμ μΈ μ΄κΈ°ν κ°μ μ 곡νμ§ μμ λ κ°μ²΄λ₯Ό μμ±νλ λ° μ¬μ©νλ μμ±μμ΄λ€. Stock fluffy_the_cat; //λν΄νΈ μμ±μ μ¬μ© μ¬μ©μκ° μ΄λ ν μμ±μλ μ μνμ§ μμ κ²½μ°μλ§ μ»΄νμΌλ¬κ° λν΄νΈ μμ±μλ₯Ό μ 곡νλ€. μμ±μλ₯Ό μ μν ν λν΄νΈ μμ±μλ₯Ό μ μνλ λ κ°μ§ λ°©λ² 1. κΈ°μ‘΄μ μμ±μμ μλ..
C++ μ 리 - 29 (κ°μ²΄μ ν΄λμ€, μ μ°¨μ νλ‘κ·Έλλ°κ³Ό κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°, μΆμνμ ν΄λμ€, c++μ ν΄λμ€, ν΄λμ€ λ©€λ²ν¨μμ ꡬν, μΈλΌμΈ λ©μλ, ν΄λμ€ μ μΈμ μΌλ°μ μΈ νμ, ν΄λμ€ μμ±..
κ°μ²΄μ ν΄λμ€ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μ νλ‘κ·Έλ¨ μ€κ³ λ°©λ² μ€ νλμ΄λ€. OPPμ κ°μ₯ μ€μν κΈ°λ₯ μΆμν μΊ‘μνμ λ°μ΄ν° μλ λ€ν μμ μ½λμ μ¬νμ© ν΄λμ€(class)λ μ΄λ¬ν opp κΈ°λ₯λ€μ ꡬν λ° κ²°ν©νλλ° κ°μ₯ μ€μν c++ λꡬμ΄λ€. μ μ°¨μ νλ‘κ·Έλλ°κ³Ό κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° oppμ κ·Ό λ°©μμ μ¬μ©νμ¬, νλ‘κ·Έλλ¨Έλ κ°μ²΄λ₯Ό μμ νλλ° νμν λ°μ΄ν°μ, μ¬μ©μκ° κ·Έ λ°μ΄ν°λ₯Ό λ€λ£¨λ λ°©λ²μ λν΄ μκ°νλ©΄μ, μ¬μ©μκ° μ΄ν΄νλ λ°©μλλ‘ κ°μ²΄μ μ΄μ μ λ§μΆλ€. μΆμνμ ν΄λμ€ -λ°μ΄ν°νμ΄λ 무μμΈκ°? κΈ°λ³Ένμ μμ νλ κ²μ λ€μκ³Ό κ°μ μΈ κ°μ§λ₯Ό κ²°μ νλ κ²μ΄λ€. λ°μ΄ν° κ°μ²΄μ νμν λ©λͺ¨λ¦¬μ ν¬κΈ°λ₯Ό κ²°μ νλ€ λ©λͺ¨λ¦¬μ μλ λΉνΈλ€μ μ΄λ»κ² ν΄μν μ§ κ²°μ νλ€ λ°μ΄ν° κ°μ²΄λ₯Ό μ¬μ©νμ¬ μνν μ μ..
C++ μ 리 - 28 (new μ°μ°μλ₯Ό μ΄μ©ν μ΄κΈ°ν, μμΉ μ§μ new μ°μ°μ, μ΄λ¦ 곡κ°, using μ μΈκ³Ό using μ§μμ, μ΄λ¦ 곡κ°μ λν 보좩)
new μ°μ°μλ₯Ό μ΄μ©ν μ΄κΈ°ν λ³μλ₯Ό μμ±νκ³ μ΄κΈ°ννκΈ° μν μ μ₯곡κ°μ μνλ€λ©΄, κ΄νΈλ₯Ό μ΄μ©ν΄ μ΄κΈ° κ° μ€μ κ°λ₯ int *pi = new int(6); double *pd = new double(99.99); μμ°¨μ μΈ κ΅¬μ‘°μ²΄λ λ³μμ μ΄κΈ°νλ c++11μμλ§ κ°λ₯ λν μ€κ΄νΈλ₯Ό μ΄μ©ν 리μ€νΈ μ΄κΈ°νλ₯Ό μ¬μ©ν΄μΌ ν¨ struct where{double x;double y;double z;}; where *one = new where{2.5,5.7,7.2}; int *ar = new int[4]{2,4,6,7}; c++11μμλ λ¨μΌ κ°μ κ°μ§λ λ³μμ λν΄μλ μ€κ΄νΈλ₯Ό μ΄μ©ν μ΄κΈ°ν κ°λ₯ int *pin = new int{6}; double *pdo = new double{99.99}; μμΉ μ§μ ne..
C++ μ 리 - 27 (μ μ μ‘΄μ κΈ°κ°, λ΄λΆ λ§ν¬, μ μ κΈ°μ΅ μ‘΄μ μκ°, λ§ν¬ μμ, κΈ°μ΅ κ³΅κ° μ νμ, Cv-μ νμ, mutable, constμ λν 보좩, ν¨μμ λ§ν¬, κΈ°μ΅ κ³΅κ° νμκ³Ό λμ λμ )
μ μ μ‘΄μ κΈ°κ°, λ΄λΆ λ§ν¬ μλ‘ λ€λ₯Έ νμΌμμ μλ‘ λ€λ₯Έ λ³μλ€μκ² κ°μ μ΄λ¦μ μ¬μ©νλ λ² κ°μ μ΄λ¦μΌλ‘ μ μλ μΈλΆ λ³μλ₯Ό νλμ νμΌμμ static μΈλΆ λ³μλ‘ μ μΈνλ€λ©΄, staticμΌλ‘ μ μΈλ λ³μλ κ·Έ νμΌμμλ§ μ¬μ©λλ λ³μλ‘ μΈμλλ€. μ μ κΈ°μ΅ μ‘΄μ μκ°, λ§ν¬ μμ λΈλ‘ μμμ staticμ μ¬μ©νλ©΄, staticμ΄ μ§μ λ³μλ₯Ό μ μ κΈ°μ΅ μ‘΄μ μκ°μ κ°κ² λ§λ λ€. μ΄λ° λ³μλ€μ λΈλ‘ μμμλ§ μλ €μ§μ§λ§ κ·Έ λΈλ‘μ΄ νλνμ§ μλ λμμλ κ³μ μ‘΄μ¬νλ€. κ·Έλ¬λ―λ‘ μ μ μ§μ λ³μλ ν¨μμ νΈμΆκ³Ό νΈμΆ μ¬μ΄μμλ κ° λ³΄μ‘΄ κ°λ₯ κΈ°μ΅ κ³΅κ° μ νμ auto(C++11μμλ μ νμμμ λΉ μ§) register static extern thread_local(C++11μμ μΆκ°λ¨) mutable..
(C++κΈ°μ΄νλ¬μ€ 6ν νλ‘κ·Έλλ° μ°μ΅ μ λ΅,μ루μ ) CHAPTER 18 μλ‘μ΄ C++ νμ€κ³Όμ λ§λ¨ p.1540~ 1λ²~4λ²
1λ² #include #include template T average_list(std::initializer_list il) { T sum = 0; for (auto it=il.begin(); it!=il.end(); it++) sum += *it; return sum / il.size(); } int main() { using namespace std; auto q = average_list({ 15.4, 10.7, 9.0 }); cout zcode; } Cpmv::Cpmv(Cpmv&& mv) :pi(mv.pi) { std::cout zcode; } if (obj.pi) { qcode += obj.pi->qcode; zcode += obj.pi->zcode; } Cpmv temp(qcode, zcod..
(C++κΈ°μ΄νλ¬μ€ 6ν νλ‘κ·Έλλ° μ°μ΅ μ λ΅,μ루μ ) CHAPTER 17 μ λ ₯, μΆλ ₯, νμΌ p.1458~ 1λ²~7λ²
1λ² #include #include #include int main() { using namespace std; char ch; int count = 0; while (cin.get(ch)) { if (ch != '$') count++; else { cin.putback(ch); break; } } cout
(C++κΈ°μ΄νλ¬μ€ 6ν νλ‘κ·Έλλ° μ°μ΅ μ λ΅,μ루μ ) CHAPTER 16 string ν΄λμ€μ νμ€ ν νλ¦Ώ λΌμ΄λΈλ¬λ¦¬ p.1342~ 1λ²~10λ²
1λ² #include #include bool palindrome(const std::string& s); int main() { std::string temp; std::cout
(C++κΈ°μ΄νλ¬μ€ 6ν νλ‘κ·Έλλ° μ°μ΅ μ λ΅,μ루μ ) CHAPTER 15 νλ λ,μμΈ,κΈ°ν μ¬ν p.1206~ 1λ²~4λ²
1λ² // tv.h -- Tv ν΄λμ€μ Remote ν΄λμ€ #ifndef TV_H_ #define TV_H_ class Tv { public: friend class Remote; // Remoteλ Tvμ private λΆλΆμ μ κ·Όν μ μλ€ enum { Off, On }; enum { MinVal, MaxVal = 20 }; enum { Antenna, Cable }; enum { TV, DVD }; Tv(int s = Off, int mc = 125) : state(s), volume(5), maxchannel(mc), channel(2), mode(Cable), input(TV) {} void onoff() { state = (state == On) ? Off : On; } bool ison() ..
(C++κΈ°μ΄νλ¬μ€ 6ν νλ‘κ·Έλλ° μ°μ΅ μ λ΅,μ루μ ) CHAPTER 14 C++ μ½λμ μ¬νμ© p.1103~ 1λ²~5λ²
1λ² //winec.h #ifndef WINEC_H_ #define WINEC_H_ #include #include #include template class Pair { private: T1 year; T2 num; public: T1 first() const { return year; } T2 second() const { return num; } Pair() {} Pair(const T1& y, const T2& n) :year(y),num(n){} }; class Wine { private: typedef std::valarray ArrayInt; typedef Pair PairArray; PairArray p; std::string label; int year_n; public: Wine(con..