1. Trang chủ
  2. » Công Nghệ Thông Tin

OOP 05 the law of the big three -

14 326 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 444,73 KB

Nội dung

Lập trình hướng đối tượng C/C++ -OOP 05 the law of the big three

Ba v n đ tr GV Nguy n Minh Huy Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy N i dung Ba v n đ tr Phương pháp l p trình hư ng đ i tư ng - Nguy n Minh Huy The Law of The Big Three Ví d 1: class Array { private: int m_size; int *m_data; public: Array(int size); }; Array::Array(int size) { m_size = size; m_data = new int[m_size]; } Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy void main() { Array a1(5); } The Law of The Big Three V n đ rị r b nh : L p có thu c tính tr Đ i tư ng c a l p b h y, b nh không thu h i a1: Array m_size m_data Rò r b nh !! 101 Ph i dùng hàm h y đ d n d p!! Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy The Law of The Big Three Ví d 1: class Array { private: int m_size; int *m_data; public: Array(int size); ~Array(); }; Array::~Array() { delete []m_data; } Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy void main() { Array a1(5); } The Law of The Big Three Ví d 2: class Array { private: int m_size; int *m_data; public: Array(int size); ~Array(); }; Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy void main() { Array a1(5); Array a2(a1); } The Law of The Big Three V n đ chép b nh (hdsc m c đ nh): Hàm d ng chép m c đ nh chép giá tr t ng thu Dùng chung c tính M t b nh !! b nh !! a1: Array m_size m_data a2: Array 101 m_size m_data Ph i cài đ t l i hàm d ng chép!! Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy The Law of The Big Three Ví d 2: class Array { private: int m_size; int *m_data; public: Array(int size); Array(const Array &a); ~Array(); }; Array::Array(const Array &a) { m_size = a.m_size; a.m_size; m_data = new int[m_size]; int[m_size]; for (int i = 0; i < m_size; i++) (int m_size; m_data[ m_data[ i ] = a.m_data[ i ]; a.m_data[ } void main() { Array a1(5); Array a2(a1); } Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy The Law of The Big Three Ví d 3: class Array { private: int m_size; int *m_data; public: Array(int size); Array(const Array &a); ~Array(); }; Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy void main() { Array a1(5); Array a2(6); a2 = a1; } The Law of The Big Three V n đ chép b nh (ttg m c đ nh): Toán t gán m c đ nh chép giá tr t ng thu c Dùng chung tính Rị r b nh !! M t b nh !! b nh !! a1: Array m_size m_data a2: Array 101 m_size m_data 405 Ph i cài đ t l i toán t gán!! Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy 10 The Law of The Big Three Ví d 2: Array & Array::operator =(const Array &a) class Array { { delete m_data; m_data; private: m_size = a.m_size; a.m_size; int m_size; m_data = new int[m_size]; int[m_size]; int *m_data; for (int i = 0; i < m_size; i++) (int m_size; public: m_data[ m_data[ i ] = a.m_data[ i ]; a.m_data[ Array(int size); return *this; Array(const Array &a); void main() } ~Array(); { Array & operator =(const Array &a); Array a1(5); }; Array a2(6); a2 = a1; Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy } 11 The Law of The Big Three Dr Guru khuyên: lu t “ba ông l n” L p có thu c tính tr , ph i kèm theo: Hàm h y: thu h i b nh Hàm d ng chép: chép b nh Toán t gán: chép b nh class HocSinh { private: char *m_hoTen; public: HocSinh(const HocSinh &h); ~HocSinh(); HocSinh & operator =(const HocSinh &h); }; Phương pháp l p trình hư ng đ i tư ng – GV Nguy n Minh Huy 12 Bài t p Bài t p 5.1: Xây d ng l p ma tr n có nh ng phương th c c n thi t đ đo n chương trình sau ch y ng nghĩa nghĩa void main() { MaTran MaTran m1(3, 5); // Kh i t o ma tr n x 5, ph n t = MaTran MaTran m2 = m1; // Kh i t o m2 t m1 MaTran MaTran m3 = m1 + m2; // C ng ma tr n n int max = m3.timMax(); // Tìm ph n t l n nh t t cout

Ngày đăng: 12/01/2014, 16:57