それはこのような関数の引数として渡されたポインタを削除しても大丈夫(および法的)です:これは今も元気にコンパイル関数の引数として渡されたポインタに削除使用
#include<iostream>
class test_class{
public:
test_class():h(9){}
int h;
~test_class(){std::cout<<"deleted";}
};
void delete_test(test_class* pointer_2){
delete pointer_2;
}
int main(){
test_class* pointer_1;
while(true){
pointer_1 = new test_class;
//std::cout<<pointer_1->h;
delete_test(pointer_1);
}
}
を、私はちょうどほしいですそれが常にそのようになることを確認してください。
私がいつも驚いたことは、ポインタが 'const'であってもそれを削除することが合法だということです。 –