class HasPtr { public: HasPtr( int *p, int v ): ptr( p ), val( v ) { } int get_ptr_val() const { return *ptr; } void set_ptr_val( int i ) const { *ptr = i; } private: int *ptr; int val; };
#include "HasPtr.h" #include <iostream> using namespace std;
int main() { int *ip = new int( 42 ); HasPtr ptr( ip, 10 ); delete ip; ptr.set_ptr_val( 0 ); //为什么没报错?? cout << ptr.get_ptr_val() << endl;