#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_n ( void ); 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_n ( void ) //遵循1 { return n; } int main ( void ) { int b[ 2 ] = { 1, 2 }; A a ( 2, b ); int &n = a.get_n ( ); //...... return ( 0 ); }