第5章 类和对象1(7)

2019-02-15 16:06

x=Q.Xcoord( )+10; y=Q.Ycoord( )+20; TPoint R(x,y); return R; }

输出:

Copy_initialization Constructor Called. Copy_initialization Constructor Called. Ok

Copy_initialization Constructor Called. Destructor Called. 释放对象R Destructor Called. 释放对象Q Destructor Called. 释放匿名对象 P=30,55

Destructor Called. 释放对象N Destructor Called. 释放对象P Destructor Called. 释放对象M

说明:

拷贝初始化构造函数使用了三次:

1.明确表示由一个对象初始化另一个对象。 TPoint N(M);

2.当对象作为函数实参传递给函数形参时。

P=f(N);

3.当对象作为函数返回值时。系统用返回值初始化一个匿名对象时使用了拷贝初始化构造函。

return R;

5.4 成员函数的特性

成员函数:在类中定义或说明的函数。 一般成员函数

成员函数 构造函数 特殊成员函数 析构函数

拷贝初始化构造函数

5.4.1 内联函数和外联函数

内联函数:定义在类体内的成员函数。

外联函数:说明在类体内,定义在类体外的成员函数。

外联函数转为内联函数,只要在函数头前面加上关键字inline。

例5.11

class A { public:

A(int x,int y){X=x;Y=y;} 内联函数 int a( ){return X;} 内联函数 int b( ){return Y;} 内联函数 int c( ); int d( ); private: int X,Y; };

inline int A::c( ) { return a( )+b( );}

inline int A::d( ) { return c( );}

#include void main( ) { A m(3,5);

int i=m.d( );

cout<<”d( )return:” } 输出:

d( )return:8

内联函数内联函数 <

5.4.2 重载性

例5.12 class M { public:

M(int x,int y){X=x;Y=y;} M(int x){X=x;Y=x*x;} 构造函数重载

int Add(int x,int y);

int Add(int x); 成员函数重载 int Add( );

int Xout( ){ return X;} int Yout( ){ return Y;} private: int X,Y; };

int M::Add(int x,int y) { X=x; Y=y; return X+Y;} int M::Add(int x)

{ X=Y=x; return X+Y;} int M::Add( )

{ return X+Y;}

#include void main( )

{ M a(10,20),b(4);

cout<<”a=”<

<

cout<<”b=”<

<

int i=a.Add( ); int j=a.Add(3,9); int k=b.Add(5);

cout<

输出:

a=10,20

b=4,16 30 12 10


第5章 类和对象1(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:同济大学环境科学与工程学院2011年硕士研究生入学考试试卷A+B组

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: