C++相談室 part47

このエントリーをはてなブックマークに追加
762デフォルトの名無しさん
コンストラクタAで他のオブジェクトBをnewしているとします。
しかし、そこでメモリが足りなかったとします。
Aがnewで作成されている場合にポインタにNULLを返したいのですが、どうすればいいのでしょうか?

#include <stdio.h>

class B{};

class A
{
public:
  A()
  {
    B *m_pB = new B;
    if (m_pB == NULL)
    {
      //ここでA()にNULLを返させたい。
    }
  }
private:
  m_pB;
};

void main()
{
  A *pA = new A;
  if (pA == NULL)
    printf("NO MEMORY\n");
}