Giáo án - Bài giảng: ĐỐI TƯỢNG VÀ LỚP TRONG C++ - Pdf 13

CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP

Khái niệm về đóng gói dữ liệu

Khai báo và sử dụng một lớp

Khai báo và sử dụng đối tượng, con trỏ đối tượng, tham chiếu đối
tượng

Hàm thiết lập và hàm huỷ bỏ

Khai báo và sử dụng hàm thiết lập sao chép

Vai trò của hàm thiết lập ngầm định
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
1. ĐỐI TƯỢNG
Ví dụ mô tả một đối tượng điểm

{
//dữ liệu
int x,y;
//phuong thuc
void init(int ox,int oy);
void move(int dx,int dy);
void display();
};
Đóng gói là cơ chế liên kết các lệnh thao tác và dữ liệu có liên quan giứp cho cả
hai được an toàn tránh sự can thiệp từ bên ngoài và việc sử dụng sai.
Đối tượng = dữ liệu + phương thức

/*
/*
point.cpp
point.cpp
*/
*/
#include <iostream.h>
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class point {
class point {//khai bao cac thanh phan rieng
//khai bao cac thanh phan riengprivate:
private:int x,y;
int x,y;//khai bao cac thanh phan cong cong
//khai bao cac thanh phan cong cong
x = ox; y = oy;
x = ox; y = oy; }
}
void point::move(int dx, int dy) {
void point::move(int dx, int dy) {cout<<"Ham thanh phan move\n";
cout<<"Ham thanh phan move\n";x += dx; y += dy;
x += dx; y += dy;}
}
void point::display() {
void point::display() {cout<<"Ham thanh phan display\n";
cout<<"Ham thanh phan display\n";cout<<"Toa do: "<<x<<" "<<y<<"\n";
cout<<"Toa do: "<<x<<" "<<y<<"\n";
p.move(1,2);
p.move(1,2);p.display();
p.display();getch();
getch();}
}
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
2. LỚP
2.1 Khai báo lớp
-
Có thể định nghĩa trực tiếp các hàm thành phần bên trong khai báo lớp
-
Khi định nghĩa hàm thành phần bên ngoài khai báo lớp ta sử dụng cú pháp
<tên kiểu trả về><tên lớp>::<tên hàm>(<danh sách tham số>)
{ <nội dung>}
-
Gọi hàm thành phần từ đối tượng của một lớp chính là truyền thông điệp cho hàm hàm
thành phần đó, cú pháp
<tên đối tượng>.<tên hàm thành phần>(<danh sách các tham số nếu có>)

private:
private:int x,y;
int x,y;public:
public: //dinh nghia ham thanh phan ben trong khai
//dinh nghia ham thanh phan ben trong khai
bao lop
bao lopvoid init(int ox, int oy){
void init(int ox, int oy){cout<<"Ham thanh phan init\n";
cout<<"Ham thanh phan init\n";x = ox; y = oy;
x = ox; y = oy;
}
}

void point::display() {
void point::display() {cout<<"Ham thanh phan display\n";
cout<<"Ham thanh phan display\n";cout<<"Toa do: "<<x<<" "<<y<<"\n";
cout<<"Toa do: "<<x<<" "<<y<<"\n";}
}
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
2. LỚP
2.1.3 Các hàm thành phần

void main() {
void main() {clrscr();/
clrscr();/point p;
point p;


2.1.3 Các hàm thành phần
Có thể đặt định hàm thành phần trong cùng tập tin khai báo lớp hoặc trong một tập tin khác
Ví dụ tệp tiêu đề point.h
Ví dụ tệp tiêu đề point.h
#ifndef
#ifndefpoint_h
point_h
#define point_h
#define point_h
#include <iostream.h>
#include <iostream.h>
class point {
class point {//khai bao thanh phan du lieu rieng
//khai bao thanh phan du lieu riengprivate:
private:int x,y;
int x,y;
Ví dụ tệp chương trình nguồn
#include “point.h”
#include “point.h”
#include <conio.h>
#include <conio.h>
//Dinh nghia cac ham thanh phan
//Dinh nghia cac ham thanh phan
void point::init(int ox, int oy) {
void point::init(int ox, int oy) {cout<<"Ham thanh phan init\n";
cout<<"Ham thanh phan init\n";x = ox; y = oy;
x = ox; y = oy;
}
}
void point::move(int dx, int dy) {
void point::move(int dx, int dy) {cout<<"Ham thanh phan move\n";
cout<<"Ham thanh phan move\n";x += dx; y += dy;
x += dx; y += dy;


p.init(2,4); p.display();
p.display();p.move(1,2);
p.move(1,2);p.display();
p.display();getch();
getch();}
}
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
2. LỚP
2.1.4 Phạm vi lớp
Tất cả các thành phần của lớp sẽ được coi là thuộc phạm vi lớp, trong định nghĩa hàm
thành phần của lớp có thể tham khảo đến bất kỳ một thành phần nào khác của lớp đó
2.1.5 Từ khoá xác định phạm vi lớp
-
Những thành phần được liệt kê trong phần private chỉ được truy xuất bên trong phạm

/*point3.cpp*/
#include <iostream.h>
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class point {
class point {
int x,y;
int x,y;public:
public://dinh nghia chong ham thanh phan
//dinh nghia chong ham thanh phan
void init();
void init();
void init (int);
void init (int);
void init (int,int);
void init (int,int);
void display();
void display();
void display(char *);
void display(char *);};

y=ord;}
}
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
2. LỚP
2.2 Khả năng của các hàm thành phần
2.2.1 Định nghĩa chồng các hàm thành phần
void main() {
void main() {clrscr();
clrscr();point a;
point a; a.init();
a.init();
//point::init()
//point::init()a.display();//point::display()
a.display();//point::display()

CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
2. LỚP
2.2 Khả năng của các hàm thành phần
2.2.2 Các tham số với giá trị ngầm định
#include <iostream.h>
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class point {
class point {
int x,y;
int x,y;public:
public:
void init (int=0,int=0);
void init (int=0,int=0);
void display(char *=””);
void display(char *=””);};
};
void point::int(int abs,int ord) {
void point::int(int abs,int ord) {x=abs;


point a;
point a;a.init();
a.init();
//a.init(0,0)
//a.init(0,0)a.display();
a.display();
//a.display(“”);
//a.display(“”);point b;
point b;b.init(5);
b.init(5);
//b.init(5,0)
//b.init(5,0)b.display("point b - ");
b.display("point b - ");


class point {int x,y;
int x,y;public:
public:

//truyen bang tri
//truyen bang triint coincide(point pt)
int coincide(point pt){return(x==pt.x && y==pt.y);}
{return(x==pt.x && y==pt.y);}
// truyen bang tham chieu
// truyen bang tham chieuint coincide(point *pt)
int coincide(point *pt)


{return(this->x==pt.x && this->y==pt.y);}
void point::display()
void point::display(){
{cout<<"Dia chi : "<<this<<"Toa do : "<<x<<"
cout<<"Dia chi : "<<this<<"Toa do : "<<x<<"
"<<y<<"\n";
"<<y<<"\n";
}
}
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
3. PHÉP GÁN ĐỐI TƯỢNG
-
Có thể gán 2 đối tượng cùng kiểu
Ví dụ:
point a, b;
a.init(5,2);
b=a;
2 y
5
b
a
x
5

-
Thực hiện quản lý một công ty có 10 nhân viên.
-
In ra danh sách tên, năm sinh và địa chỉ các nhân viên trong công ty.
-

CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ
4.1 Hàm thiết lập
-
Là một hàm đặc biệt trong lớp và nó được gọi tự động khi có một đối tượng được khai
báo.
-
Hàm thiết lập khởi tạo các giá trị thành phần dữ liệu của đối tượng, xin cấp phát bộ
nhớ cho các thành phần dữ liệu động
CHƯƠNG 2:
ĐỐI TƯỢNG VÀ LỚP
4. HÀM THIẾT LẬP VÀ HÀM HUỶ BỎ
4.1 Hàm thiết lập
#include <iostream.h>
#include <iostream.h>
#include <conio.h>
#include <conio.h>
class point
class point
{
{};
};
void point::move(int dx,int dy){
void point::move(int dx,int dy){x+=dx;
x+=dx;y+=dy;
y+=dy;}
}
void point::display(){
void point::display(){cout<<“Toa do : “<<x<<" "<<y<<"\n";
cout<<“Toa do : “<<x<<" "<<y<<"\n";}
}
void main() {
void main() {


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status