<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
  <title type="html">김 용묵의 절대공간 - 블로그: C-연산자-오버로딩-上에 달린 최근 댓글/트랙백 목록</title>
  <id>http://moogi.new21.org/tc/</id>
  <link rel="alternate" type="text/html" hreflang="ko" href="http://moogi.new21.org/tc/" />
  <subtitle type="html">철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.</subtitle>
  <updated>2022-07-25T19:23:34+09:00</updated>
  <generator>Textcube 1.7.8 : Con moto</generator>
  <entry>
    <title type="html">김 기윤님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/854#comment3916" />
    <author>
      <name>(김 기윤)</name>
    </author>
    <id>http://moogi.new21.org/tc/854#comment3916</id>
    <published>2013-07-15T09:48:46+09:00</published>
    <summary type="html">재밌게 읽었습니다.

그리고 깨알같은 H2O는 산소...</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/854#comment3917" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/854#comment3917</id>
    <published>2013-07-15T15:54:57+09:00</published>
    <summary type="html">ㅎㅎ 반갑습니다.
C++이 정말 방대한 언어라는 걸 실감하는 중입니다.
부가 인자가 붙은 operator new는 new operator를 통해 동반 호출이 가능한 반면,
delete operator에는 부가 인자가 붙은 operator delete를 호출하는 문법이 없다는 것도 알았고요.

그리고 개인적으로는 new/delete와 new[]/delete[] 구분을 왜 넣었는지도 궁금합니다.
100바이트짜리 개체 하나를 선언할 때나, 24바이트 개체 4개를 선언할 때나 메모리 100바이트 할당이 일어나는 건 똑같지(원소 개수 4바이트 오버헤드 추가 포함), 둘을 구분할 필요는 없잖아요?
operator new[] 함수라고 해도 인자로 들어오는 건 총 바이트수 하나뿐이지, 배열 원소 개수가 들어오는 것도 아니고?</summary>
  </entry>
  <entry>
    <title type="html">김재주님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/854#comment3919" />
    <author>
      <name>(김재주)</name>
    </author>
    <id>http://moogi.new21.org/tc/854#comment3919</id>
    <published>2013-07-17T21:14:37+09:00</published>
    <summary type="html">배열 원소 개수가 들어가는 것이 맞지 않나요?

그리고 new는 단순히 메모리 할당을 하는 것만이 아니라 생성자 호출 역할도 담당하고 있기 때문에 구분을 하지 않을 수 없죠.</summary>
  </entry>
  <entry>
    <title type="html">사무엘님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/854#comment3920" />
    <author>
      <name>(사무엘)</name>
    </author>
    <id>http://moogi.new21.org/tc/854#comment3920</id>
    <published>2013-07-17T22:27:21+09:00</published>
    <summary type="html">재주 님께서 말씀하신 건 new operator이고, 제가 얘기하는 건 new가 내부적으로 사용하는 메모리 할당 함수인 operator new 말입니다. ㅎㅎ 사실상 C의 malloc이나 다름없는 파트이죠.

new Twenty_Four_byte_Object[4];

라고 해 주면 new operator는 내부적으로 operator new[](100) 함수를 호출하고 (상술한 이유와 같이 24*4+4바이트)
앞에 4개라는 원소 개수를 써 넣은 뒤, 다음 24바이트 메모리 간격으로 Twenty_Four_byte_Object 클래스의 생성자 함수를 4회 호출해 주겠죠?

그 반면

new Hundred_byte_Object;

라고 하면 new operator는 내부적으로 operator new(100)을 호출하고 곧바로 Hundred_byte_Object 클래스의 생성자 함수를 하나 호출해 줍니다.

그래서 어차피 operator new나 operator new[]나 100바이트짜리 메모리를 할당하는 건 전혀 차이가 없고, operator new[]라고 해서 24나 4라는 정보를 따로 받는 것도 전혀 아닌데
두 함수를 구분할 필요가 있느냐는 게 요지입니다.</summary>
  </entry>
  <entry>
    <title type="html">김재주님의 댓글</title>
    <link rel="alternate" type="text/html" href="http://moogi.new21.org/tc/854#comment3923" />
    <author>
      <name>(김재주)</name>
    </author>
    <id>http://moogi.new21.org/tc/854#comment3923</id>
    <published>2013-07-18T15:16:24+09:00</published>
    <summary type="html">어떤 타입을 단일 객체로 생성할 때와 배열로 생성할 때 서로 다른 메모리 풀에 할당하고 싶을 수 있겠죠. 이런 경우가 얼마나 많을지는 잘 모르겠지만, 때로는 있을 것도 같습니다.</summary>
  </entry>
</feed>
