You are on page 1of 29

2.

)
class
class

class

struct union.

C
CPoint.

-
-

[4]
class
private:

public:

protected:

};

25
private, public, protected,

private

public)

protected,

public.

CPoint
:
CPoint point1, points[10], &point2=point1, *pPoint;
pPoint=new CPoint[5];
CPoint

point1, points point2


26
point1,

pPoint.

2.2.

(inline) inline-

::

CPoint method().

point1.method
method

27
2.1.

).

#include <iostream>
#include <iostream>
#include <windows.h>
using namespace std;
class CPoint

};
void main()
{
setlocale(0,"");
char tmp[80];
CharToOem tmp);

-
CPoint
int a, b;
\n ";
cin>>a>>b;

\n ";
cin>>a>>b;

28
- \n";
cout<<"("<<point1.GetX()<<","<<point1.GetY()<<")
("<<point2.GetX()<<","<<point2.GetY()<<")\n";
system("pause");
}

2.3.

SetX() SetY()

-
- -

29
void

CPoint point1;

CPoint::CPoint

CPoint::CPoint(){x=0; y

CPoint point1=CPoint();

.
30
CPoint

CPoint::CPpoint(int a, int b){


x=a; y=b; }

a b -
).

CPoint::CPoint(int a=0,int b=0){


x=a; y=b;}

-
a b

CPoint point1, point2(1,2);


point1

point2

31
N):
N N) {}

CPoint

CPoint::CPoint(int a, int b): x(a), y(b) {}


,

point1 point1(1,2);
CPoint point2(point1);

point1 point1

point2.

32
-

[8, c. 223]
-
const

- Cpoint

CPoint (const CPoint &point1);

2.4.

~
CPoint
~CPoint();

delete

33
main().

delete

2.2.

CPoint

__________________________________________________________
#include <iostream>
#include <windows.h>
using namespace std;
class CPoint
{int x,y;
public:
CPoint() {x=0;y=0;cout
endl
CPoint (int a, int b): x(a), y(b) {cout
endl

CPoint (const CPoint &point

int GetX() {return x x


int GetY() {return y y
void SetX(int a) {x=a x
void SetY(int b) {y=b y
};

CPoint::CPoint(const CPoint &point){


x=point.x;
y=point.y;
cout endl;
}

34
void main(){
setlocale(0,"");
system("color F

char tmp[80];
CharToOem c
tmp);
SetConsoleTitle(tmp

CPoint point1, point -


CPoint
cout - \n";
cout<<"("<<point1.GetX()<<","<<point1.GetY()<<")
("<<point2.GetX()<<","<<point2.GetY()<<")\n";
point1.SetX(- x
point1.SetY(- y
cout \n";
cout<<"("<<point1.GetX()<<","<<point1.GetY()<<") \n";
CPoint point3(point1);
cout - \n";
cout<<"("<<point3.GetX()<<","<<point3.GetY()<<") \n";
system("pause");
}
__________________________________________________________

CPoint.

35
SetX(), SetY()

GetX GetY().

delete,

2.5. this

this

:
const this

void SetX(int a) {x=a;};

void SetX(int a) {this->x=a;};

CPoint,

this

this

36
x Cpoint

:
CPoint & CPoint::maxX( CPoint & point)
{ if (point.x>x) return point;
else return *this;
}
this

[2, c. 125]

this.

2.6.

maxX() Cpoint

const

const

const

const:
const

const

37
const CPoint point00(0,0);

CPoint

x y,

2.3.

#include <iostream>
#include <windows.h>
using namespace std;
class CPoint
{int x,y;
public:
CPoint() {x=0;y=0; cout \n

CPoint (int a, int b): x(a), y(b) {cout


\n
CPoint (const CPoint &point

~CPoint() {cout \n

38
int GetX() const {return x
x
int GetY() const {return y
y
void Print() const

const CPoint & maxX(const CPoint & point) const

};

CPoint::CPoint(const CPoint &point)


{x=point.x;
y=point.y;
\n";
}

{cout
cout<<"("<<x<<","<<y<<")\n";
}
const CPoint & CPoint::maxX( const CPoint & point) const
{if (point.x>x) return point;
else return *this;
}
void main()
{
setlocale(0,"");
system("color F

char tmp[80];
CharToOem c
tmp);
SetConsoleTitle(tmp

CPoint point1(2,5), point -


CPoint
39
CPoint *pp=new CPoint;// 3- -
\n";
point1.Print();
point2.Print();
pp->Print();

cout<< " X : ";


(pp->maxX(point_max)).Print();// maxX(),
Print()
delete pp;
system("pause");
}
__________________________________________________________

maxX()

(0,0)

pp->Print()

CPoint point_max(point1.maxX(point2));
point1 maxX

point2

point_max.

maxX() point_max ,

(pp->maxX(point_max)).Print();

Print()

40
point_max

maxX()

main()

Microsoft Visual Studio 2012

system("pause");

delete
41
main().

2.7

st tic.

CPoint.

2.4.

#include <iostream>
#include <windows.h>
using namespace std;
class CPoint
{int x,y;
public:
42
static int count_point;// -
CPoint() {x=0;y=0; count_point

CPoint (int a, int b): x(a), y(b) {count_point++;} //

CPoint (const CPoint &point

void Print() const

};

CPoint::CPoint(const CPoint &point)


{ x=point.x;
y=point.y;
count_point++;
}
void CPoint::Print() const // print
{ cout
cout<<"("<<x<<","<<y<<")\n";
}
int CPoint::count_point
void main()
{
setlocale(0,"");
system("color F

char tmp[80];
CharToOem c static", tmp);
SetConsoleTitle(tmp

cout<<" - : " << CPoint :: count_point


<<endl;
CPoint point1, point -
CPoint
CPoint *pp=new CPoint(point1);/* 3- -

cout<<" :\n";
point1.Print();
point2.Print();
pp->Print();

cout<<" - :" << CPoint::count_point


<<endl;
delete pp;
system("pause");
}
__________________________________________________________

43
.4
-

count_point

main()

this.

virtual const volatile

CPoint

44
-
count_point.
2.5.

#include <iostream>
#include <windows.h>
using namespace std;
class CPoint
{ int x,y;
static int count_point -
public:
CPoint() {x=0;y
CPoint (int a, int b): x(a), y(b

CPoint (const CPoint &point

void Print() const

static int IncCount() {return ++count_point

};

CPoint::CPoint(const CPoint &point)


{ x=point.x;
y=point.y;
}
void
{ cout
cout<<"("<<x<<","<<y<<")\n";
}
int CPoint::count_point
void main()
{
setlocale(0,"");
system("color F

char tmp[80];
CharToOem c static", tmp);
SetConsoleTitle(tmp

CPoint point -
cout \n";
point1.Print();

45
cout - point1.IncCount()<<endl;
CPoint point -
\n";
point2.Print();
cout - point2.IncCount()<<endl;
// 2-
system("pause");
}
__________________________________________________________

.5

[9, c. 413].

[11, c. 61].

2.8.

[7]

46
friend

friend

public, private, protected;

this;

CPoint

double Distance(const CPoint &point);

this -

Distance()
CPoint.
2.6.

#include <iostream>
#include <windows.h>
#include <iomanip>
47
using namespace std;
class CPoint
{int x,y;
public:
CPoint() {x=0;y
CPoint (int a, int b): x(a), y(b) {

CPoint (const CPoint &point

void Print() const

friend double Distance(const CPoint &p1, const CPoint &p2);


};

CPoint::CPoint(const CPoint &point)


{ x=point.x;
y=point.y;
}
void CPoint::Print() const // print
{ cout
cout<<"("<<x<<","<<y<<")\n";
}

double Distance(const CPoint &p1, const CPoint &p2)


{ return sqrt(float((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-
p2.y)*(p1.y-p2.y)));}

void main()
{
setlocale(0,"");
system("color F0"); //

char tmp[80];
CharToOem c
tmp);
SetConsoleTitle(tmp

CPoint point1, point2(1,1);


cout<<" :\n";
point1.Print();
point2.Print();

cout<<" 1 2 " <<


setprecision(3)<< Distance(point1,point2)<<endl;
system("pause");
}
__________________________________________________________

48
.6

[4, c. 491].
2.7.

#include <iostream>
#include <windows.h>
using namespace std;
class CLine
class CPoint
{int x,y;
public:
CPoint(int a=0,int b=0) {x=a;y=b

49
int GetX() const {return x
x
int GetY() const {return y
y

friend int Is_Belongs(const CPoint &p, const CLine &l);

friend void Print(const CPoint &p, const CLine &l);


};
class Cline

{int k,b;
public:
CLine(int kk=0,int bb=0) {k=kk;b=bb

int GetK() const {return k

int GetB() const {return b

friend int Is_Belongs(const CPoint &p, const CLine &l);


friend void Print(const CPoint &p, const CLine &l);
};

int Is_Belongs(const CPoint &p, const CLine &l)


{ return ((l.k*p.x+l.b)==p.y) ? 1:0;}
void Print(const CPoint &p, const CLine &l)

","<<p.
"x+" << l.GetB() << endl;

endl;
}
void main()
{
setlocale(0,"");
system("color F0"); //

char tmp[80];
CharToOem c
tmp);
SetConsoleTitle(tmp

CPoint point1, point2(1,3);


CPoint
CLine line1(2,1), line2(-
CLine
- -

Print(point1, line1);
Print(point2, line1);
50
Print(point2, line2);
system("pause");
}
__________________________________________________________

.7

CPoint CLine Is_Belongs()

CPoint

CLine.

Print()

Is_Belongs() ,

forward declaration) [9, c. 101].

CLine).

CPoint

CLine,

51
friend

friend class

class

[12, c. 807].

class CFirst
F
...
};
class CSecond
{ friend CFirst :: F
...
};

CFirst CSecond.

public, private,
protected?

52
struct

class?

class CPoint
{int x,y;
public:
CPoint();
CPoint (int a, int b);
CPoint (const CPoint &point);
int _CPoint();
CPoint (int a);
~CPoint();
void CPointInit(int a,int b);
};

this
A B B
A?

53

You might also like