<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>순수가상함수 on Sobamemil</title>
    <link>https://blog.sobamemil.com/tags/%EC%88%9C%EC%88%98%EA%B0%80%EC%83%81%ED%95%A8%EC%88%98/</link>
    <description>Recent content in 순수가상함수 on Sobamemil</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Mon, 09 Mar 2020 17:19:46 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/tags/%EC%88%9C%EC%88%98%EA%B0%80%EC%83%81%ED%95%A8%EC%88%98/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>명품 C&#43;&#43; programming 실습 문제 10장 8번</title>
      <link>https://blog.sobamemil.com/posts/118-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-8%EB%B2%88/</link>
      <pubDate>Mon, 09 Mar 2020 17:19:46 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/118-%EB%AA%85%ED%92%88-c-programming-%EC%8B%A4%EC%8A%B5-%EB%AC%B8%EC%A0%9C-10%EC%9E%A5-8%EB%B2%88/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;문제 7을 푸는 다른 방법을 소개한다.&lt;/p&gt;
&lt;p&gt;bigger() 함수의 다음 라인에서 &amp;gt; 연산자 때문에&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1&lt;/td&gt;
          &lt;td&gt;if(a &amp;gt; b) return a;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;T에 Circle과 같은 클래스 타입이 대입되면, 구체화가 실패하여 컴파일 오류가 발생한다.&lt;/p&gt;
&lt;p&gt;이 문제를 해결하기 위해 다음과 같은 추상 클래스 Comparable을 제안한다.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6&lt;/td&gt;
          &lt;td&gt;class Comparable {  public:  virtual bool operator &amp;gt; (Comparable&amp;amp; op2) = 0; // 순수 가상 함수  virtual bool operator &amp;lt; (Comparable&amp;amp; op2) = 0; // 순수 가상 함수  virtual bool operator == (Comparable&amp;amp; op2) = 0; // 순수 가상 함수  };&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Circle 클래스가 Comparable을 상속받아 순수 가상 함수를 모두 구현하면, 앞의 bigger() 템플릿 함수를 사용하는데 아무 문제가 없다.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
