C++程序设计基础:6-类与对象_第1页
C++程序设计基础:6-类与对象_第2页
C++程序设计基础:6-类与对象_第3页
C++程序设计基础:6-类与对象_第4页
C++程序设计基础:6-类与对象_第5页
已阅读5页,还剩253页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章类与对象

6.1类与对象

6.2构造函数和析构函数

6.3类的其他成员

6.4类的包含

小结

类(Class)是面向对象程序设计(OOP)实现信息封装的基础。类是用户定义类型,也称为类类型每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象第6章类与对象

面向对象编程的程序基本单位是类类是数据和操作数据的函数的封装类的对象使用自己的方法完成对数据的操作类可以隐藏数据和操作细节,对象通过类接口与外部通信6.1类与对象6.1类与对象//排序函数原型voidSort(int[],int); //数组相加函数原型voidAdd(int[],int[],int);……intmain(){inta[10],b[10];…….Sort(a,10);Sort(b,10);Add(a,b,10);…….}数组与数组类封装classArray //定义数组类{int*ap;intlen;public:Array(intsize) //建立数组

{len=size;ap=newint[size];}voidSort(); //排序

//重载算符+函数

Arrayoperaor+(constArray&other);};……intmain(){Arraya(10),b(10); //声明对象

…….a.Sort();b.Sort(); //调用排序方法

a=a+b; //数组相加

…….}//排序函数原型voidSort(int[],int); //数组相加函数原型voidAdd(int[],int[],int);……intmain(){inta[10],b[10];…….Sort(a,10);Sort(b,10);Add(a,b,10);…….}数组与数组类封装6.1类与对象classArray //定义数组类{int*ap;intlen;public:Array(intsize) //建立数组

{len=size;ap=newint[size];}voidSort(); //排序

//重载算符+函数

Arrayoperaor+(constArray&other);};……intmain(){Arraya(10),b(10); //声明对象

…….a.Sort();b.Sort(); //调用排序方法

a=a+b; //数组相加

…….}//排序函数原型voidSort(int[],int); //数组相加函数原型voidAdd(int[],int[],int);……intmain(){inta[10],b[10];…….Sort(a,10);Sort(b,10);Add(a,b,10);…….}数组与数组类classArray //定义数组类{int*ap;intlen;public:Array(intsize) //建立数组

{len=size;ap=newint[size];}voidSort(); //排序

//重载算符+函数

Arrayoperaor+(constArray&other);};类是数据和操作数据的函数的封装封装6.1类与对象classArray //定义数组类{int*ap;intlen;public:Array(intsize) //建立数组

{len=size;ap=newint[size];}voidSort(); //排序

//重载算符+函数

Arrayoperaor+(constArray&other);};……intmain(){Arraya(10),b(10);

//声明对象

…….

a.Sort();b.Sort();

//调用排序方法

a=a+b;

//数组相加

…….}//排序函数原型voidSort(int[],int); //数组相加函数原型voidAdd(int[],int[],int);……intmain(){inta[10],b[10];…….Sort(a,10);Sort(b,10);Add(a,b,10);…….}数组与数组类对象使用自己的方法对数据操作a.Sort();b.Sort();//调用排序方法a=a+b;

//数组相加封装6.1类与对象几点如何调整通信6.1类与对象构造class钟

{private:

钟的构造;

public:

读取时间值;

调整时间值;};对象通过类接口与外部通信通信6.1类与对象6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}class

Tdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};关键字定义一个类标识符类名

class

,struct,union

都可以定义一个类:

class

缺省说明时,其成员被认为 是私有的

struct

若不特别指出,其所有成员 都是公有的

union

其所有成员都是公有的,且 不能更改6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdate

a;a.Set(10,16,2003);a.Print();}aTdate类型的一个对象(实例)6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}

类由成员构成:

数据成员——描述对象的属性

成员函数——描述对象的方法6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}intmonth;intday;intyear;数据成员6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}类中定义成员函数内联函数处理6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}voidSet(intm,intd,inty);intIsLeapYear();voidPrint();在类外定义成员函数voidTdate::Set(intm,intd,inty){month=m;day=d;year=y;}intTdate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidTdate::Print(){cout<<year<<"."<<month<<"."<<day<<endl;}6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}

private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}成员的性质由关键字public、protected、private决定public 公有 公有段的成员是提供给外部的接口protected

保护 保护段成员在该类和它的派生类中可见private

私有 私有段成员仅在类中可见各段中既可以包含数据成员,也可以包含成员函数6.1.1定义类和对象

//例6-1一个类的例子#include<iostream>usingnamespacestd;classTdate{public:voidSet(intm,intd,inty){month=m;day=d;year=y;}intIsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}voidPrint(){cout<<year<<"."<<month<<"."<<day<<endl;}private:intmonth;intday;intyear;};intmain(){Tdatea;a.Set(10,16,2003);a.Print();}类说明的一般形式为:

class

类名{public:

公有段数据成员和成员函数

;

protected:

保护段数据成员和成员函数

;

private:

私有数据成员和成员函数

;};6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中例:

classlink

{link

*next; ……};//声明一个指向link类类型的指针6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中例:

classX

{……};

classY

{X

dataMember; ……};//声明一个类类型数据成员6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中例:

classX

{

X

dataMember; ……};//错误错误无穷递归结构6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中2.类可以无名,用于直接声明对象例:

class{……}mydate; //直接声明一个对象6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中2.类可以无名,用于直接声明对象//例6-2#include<iostream>usingnamespacestd;classempty{};intmain(){emptye1;cout<<"&e1="<<&e1<<endl;

cout<<"sizeofe1="<<sizeof(e1)<<endl;}3.类是一个程序包。可以只有数据成员或只有成员函数,或者为空。一个空类6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中2.类可以无名,用于直接声明对象3.类是一个程序包。可以只有数据成员或只有成员函数,或者为空。//例6-2#include<iostream>usingnamespacestd;classempty{};intmain(){emptye1;cout<<"&e1="<<&e1<<endl;

cout<<"sizeofe1="<<sizeof(e1)<<endl;}空类对象6.1.1定义类和对象

类说明的一般形式为:

class类名{public:

公有段数据成员和成员函数

;protected:

保护段数据成员和成员函数

;private:

私有数据成员和成员函数

;};注:1.允许已定义类名出现在类的说明中2.类可以无名,用于直接声明对象//例6-2#include<iostream>usingnamespacestd;classempty{};intmain(){emptye1;cout<<"&e1="<<&e1<<endl;

cout<<"sizeofe1="<<sizeof(e1)<<endl;}3.类是一个程序包。可以只有数据成员或只有成员函数,或者为空。

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-3访问对象的公有成员

#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<“,”<<y;};};intmain(){Tclasstest;test.x=100;test.y=200; test.print();}

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-3访问对象的公有成员#include<iostream>usingnamespacestd;classTclass{

public:intx,y;voidprint(){cout<<x<<“,”<<y;};};intmain(){Tclasstest;

test.x=100;test.y=200; test.print();}访问公有数据成员

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-3访问对象的公有成员#include<iostream>usingnamespacestd;classTclass{

public:intx,y;voidprint(){cout<<x<<“,”<<y;};};intmain(){Tclasstest;test.x=100;test.y=200;

test.print();}调用公有成员函数

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-4用指针访问对象成员#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<","<<y<<endl;};};intadd(Tclass*ptf){return(ptf->x+ptf->y);}intmain(){Tclasstest,*pt=new(Tclass); pt->x=100;pt->y=200;pt->print();test.x=150;test.y=450;test.print();cout<<"x+y="<<add(&test);}

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-4用指针访问对象成员#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<","<<y<<endl;};};intadd(Tclass*ptf){return(ptf->x+ptf->y);}intmain(){Tclasstest,*pt=new(Tclass); pt->x=100;pt->y=200;pt->print();test.x=150;test.y=450;test.print();cout<<"x+y="<<add(&test);}建立动态对象

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-4用指针访问对象成员#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<","<<y<<endl;};};intadd(Tclass*ptf){return(ptf->x+ptf->y);}intmain(){Tclasstest,*pt=new(Tclass);

pt->x=100;pt->y=200;

pt->print();test.x=150;test.y=450;test.print();cout<<"x+y="<<add(&test);}用指针访问对象成员

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-4用指针访问对象成员#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<","<<y<<endl;};};intadd(Tclass*ptf){return(ptf->x+ptf->y);}

intmain(){Tclasstest,*pt=new(Tclass); pt->x=100;pt->y=200;pt->print();test.x=150;test.y=450;test.print();cout<<"x+y="<<add(&test);}具有类指针参数的函数

公有成员是提供给外部的接口类外用“.”和“->”运算符访问对象成员6.1.2访问对象成员//例6-4用指针访问对象成员#include<iostream>usingnamespacestd;classTclass{public:intx,y;voidprint(){cout<<x<<","<<y<<endl;};};intadd(Tclass*ptf){return(ptf->x+ptf->y);}

intmain(){Tclasstest,*pt=new(Tclass); pt->x=100;pt->y=200;pt->print();test.x=150;test.y=450;test.print();cout<<"x+y="<<add(&test);}向函数传递对象地址

6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){

Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y向哪个对象的数据成员赋值?

6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.yvoidsetXY(inta,intb,Simple*constthis){this->x=a;this->y=b;}obj1.setXY(10,15,&obj1);成员函数隐含定义this

指针接受调用对象的地址6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.yobj1.setXY(10,15,&obj1);voidsetXY(inta,intb,Simple*constthis){this->x=a;this->y=b;}this

指针不能显式声明6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.yvoidsetXY(inta,intb,Simple*constthis){this->x=a;this->y=b;}this

指针不能显式声明可以显式使用obj1.setXY(10,15,&obj1);6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y通过调用函数的对象this指针获取对象地址6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;

obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);

obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}

voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);

obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y在obj1上操作10,15

20,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();

obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y10,15

20,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();

obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.yobj2.xobj2.yobj3.xobj3.y10,15

20,2530,35在obj2上操作6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();

obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,15

20,2530,35在obj2上操作6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);

obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,15

20,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}

voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);

obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,15

20,2530,35在obj2上操作6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}

voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);

obj2.printXY();obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,1520,2530,35在obj2上操作6.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();

obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,1520,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();

obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.yobj3.xobj3.y10,1520,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:

voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();

obj3.setXY(30,35);obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.y3035obj3.xobj3.y10,1520,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);

obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.y3035obj3.xobj3.y10,1520,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}

voidprintXY(){cout<<x<<","<<y<<endl;};};intmain(){Simpleobj1,obj2,obj3;obj1.setXY(10,15);obj1.printXY();obj2.setXY(20,25);obj2.printXY();obj3.setXY(30,35);

obj3.printXY();}1015obj1.xobj1.y2025obj2.xobj2.y3035obj3.xobj3.y10,1520,2530,356.1.3this指针

#include<iostream> //例6-5usingnamespacestd; classSimple{intx,y;public:voidsetXY(inta,intb){x=a;y=b;}

voidprintXY()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论