new または delete のグローバルな再定義

new または delete 組み込み関数を隠す宣言があります。

これは、予期しない動作を引き起こすため危険です。また、紛らわしいコンパイルエラーの原因にもなります。

ID

問題箇所

説明

1

定義

再定義が定義された場所


#include <stdio.h>
#include <new>

class A
{
public:
    void speak() {
        printf("hello");
    }
};
 
void * operator new(size_t size) throw (std::bad_alloc) {
    return NULL;
};
 
int main()
{
    A *a = new A;
    a.speak();
    delete a;
    return 0;
}
        

© 2010 Intel Corporation. 無断での引用、転載を禁じます。