#include using namespace std; class A { public: A ( int n_, int *b_ ); A ( const A &ca ); A ( void ); ~A ( void ); operator = ( const A &ca ); int *get_b ( void ) const; private: int n; int *b; }; A::A ( int n_, int *b_ ) { n = n_; b = new int[ n ]; for ( int i = 0; i < n; i++ ) { b[ i ] = b_[ i ]; } } A::A ( const A &ca ) { n = ca.n; b = new int[ n ]; for ( int i = 0; i < n; i++ ) { b[ i ] = ca.b[ i ]; } } A::operator = ( const A &ca ) { n = ca.n; b = new int[ n ]; for ( int i = 0; i < n; i++ ) { b[ i ] = ca.b[ i ]; } } A::A ( void ) : b ( new int[ 0 ] ), n ( 1 ) { b[ 0 ] = 0; } A::~A ( void ) { delete[ ] b; b = NULL; } int *A::get_b ( void ) const //违背1 { return b; } int main ( void ) { int i = 0; int b[ 2 ] = { 1, 2 }; A const a ( 2, b ); a.get_b ( ) [ 0 ] = i; return ( 0 ); }