[oop C++] Hàm Thiết Lập Constructor, Hủy Bỏ Destructor - Lập Trình 321

Lập Trình 321

Tổng Hợp Kiến Thức Lập Trình

SLIDE1

Wednesday, June 17, 2015

Home » giao trinh oop , lap trinh c » [oop c++] hàm thiết lập constructor, hủy bỏ destructor

[oop c++] hàm thiết lập constructor, hủy bỏ destructor

Unknown 11:35 PM giao trinh oop, lap trinh c Trong hầu hết các thuật giải, để giải quyết một vấn đề thường phải thực hiện các công việc: Khởi tạo giá trị cho biến, cấp phát vùng bộ nhớ của biến con trỏ, mở tập tin để truy cập,… Hoặc khi kết thúc, chúng ta phải thực hiện quá trình ngược lại như: Thu hồi vùng bộ nhớ đã cấp phát, đóng tập tin,… Các ngôn ngữ OOP có các phương thức để thực hiện công việc này một cách “tự động” gọi là phương thức thiết lập và phương thức hủy bỏ.

Constructor

là một loại phương thức đặc biệt dùng để khởi tạo thể hiện của lớp. Bất kỳ một đối tượng nào được khai báo đều phải sử dụng một hàm thiết lập để khởi tạo các giá trị thành phần của đối tượng. Hàm thiết lập được khai báo giống như một phương thức với tên phương thức trùng với tên lớp và không có giá trị trả về (kể cả void). Constructor phải có thuộc tính public Constructor có thể được khai báo chồng như các hàm C++ thông thường khác hay không? Constructor có thể được khai báo với các tham số có giá trị ngầm định hay không? câu trả lời là có: Ví dụ class point{ /*Khai báo các thành phần dữ liệu*/ int x, y; public: point() { x = 0; y = 0; } /*Hàm thiết lập mặc định*/ point(int ox, int oy) { x = ox; y = oy; }/*Hàm thiết lập*/ void move (int dx, int dy); void display(); }; point a(5,2); point b; point c(3); Ví dụ class point{ /*Khai báo các thành phần dữ liệu*/ int x, y; public: point() { x = 0; y = 0; } /*Hàm thiết lập mặc định*/ point(int ox, int oy = 1){ x = ox; y = oy;}/*Hàm thiết lập*/ void move (int dx, int dy); void display(); }; point a(5,2); point b; point c(3);

Constructor mặc định

Constructor mặc định (default constructor) là constructor được gọi khi thể hiện được khai báo mà không có đối số nào được cung cấp MyClass x; MyClass* p = new MyClass; Ngược lại, nếu tham số được cung cấp tại khai báo thể hiện, trình biên dịch sẽ gọi constructor khác (overload) MyClass x(5); MyClass* p = new MyClass(5); Đối với constructor mặc định, nếu ta không cung cấp bất kỳ constructor nào, C++ sẽ tự sinh constructor mặc định là một phương thức rỗng. Tuy nhiên, nếu ta không định nghĩa constructor mặc định nhưng lại có các constructor khác, trình biên dịch sẽ báo lỗi không tìm thấy constructor mặc định nếu ta không cung cấp tham số khi tạo thể hiện. Ví dụ class point{ /*Khai báo các thành phần dữ liệu*/ int x, y; public: point(int ox, int oy = 1){ x = ox; y = oy;} void move (int dx, int dy); void display(); }; point a(5,2); point b; point c(3);

Copy constructor

Chúng ta có thể tạo đối tượng mới giống đối tượng cũ một số đặc điểm, không phải hoàn toàn như phép gán bình thường, hình thức “giống nhau” được định nghĩa theo quan niệm của người lập trình. Để làm được vấn đề này, trong các ngôn ngữ OOP cho phép ta xây dựng phương thức thiết lập sao chép. Đây là phương thức thiết lập có tham số là tham chiếu đến đối tượng thuộc chính lớp này. Trong phương thức thiết lập sao chép có thể ta chỉ sử dụng một số thành phần nào đó của đối tượng ta tham chiếu “gần giống nhau”

Hàm hủy bỏ – Destructor

Destructor, được gọi ngay trước khi một đối tượng bị thu hồi. Destructor thường được dùng để thực hiện việc dọn dẹp cần thiết trước khi một đối tượng bị hủy. Một lớp chỉ có duy nhất một Destructor Phương thức Destructor trùng tên với tên lớp nhưng có dấu ~ đặt trước Được tự động gọi thực hiện khi đối tượng hết phạm vi sử dụng. Destructor phải có thuộc tính public Ví dụ class vector{ int n; //số chiều float *v; //vùng nhớ tọa độ public: vector(); //Hàm thiết lập không tham số vector(int size); //Hàm thiết lập một tham số vector(int size, float *a); ~vector();//Hàm hủy bỏ, luôn luôn không có tham số void display(); }; ← Newer Post Older Post → Home

Find us on facebook

Trần Khánh Toànemail: [email protected]://www.laptrinh321.net FaceBook Google Plus
  • Popular
  • Tags
  • Blog Archives
  • các hệ thống số cơ bản, nhị phân, bát phân, thập lục phân, thập phân các hệ thống số cơ bản thập phân: gồm các chữ số 0,1,2,3,4,5,6,7,8,9 ví dụ: 576.348 = 5*10^2 + 7*10^1 + 6*10^0 + 3*10^-1 + 4*10^-2 ...
  • hệ đếm nhị phân, thập phân và thập lục phân 1. hệ đếm nhị phân: dùng 2 kí số cơ bản là 0 và 1 đổi hệ 10 sang hệ 2 thì chia liên tiếp cho 2 đến khi bằng 0, số dư được viết theo c...
  • lập trình tìm các bộ số pitago | lập trình c/c++ lập trình tìm các bộ số pitago | lập trình c/c++.   Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của...
  • xung đột? pipelined và kỹ thuật forwarding, non-forwarding  Pipeline là một kỹ thuật mà trong đó các lệnh được thực thi theo kiểu chồng lắp lên nhau. - Cách tiếp cận dùng kỹ thuật pipeline tiêu tố...
  • viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân .  DEC,BIN,HEX,OCT.   Viết chương trình in bảng của các số từ 1 đế...
  • cách XĐ tín hiệu điều khiển từ khối "Control" - Datapath (KTMT) ** Tổng quan các lệnh cần xem xét: (8 lệnh trong 3 nhóm chính của tập lệnh MIPS)   §  Nhóm lệnh tham khảo bộ nhớ (lw và sw): Nạp...
  • OOP C++ cộng trừ nhân chia số phức Làm lại bài số phức với một phương thức thiết lập duy nhất cho phép quan điểm một số thực như một số phức đặc biệt (phần ảo bằng 0). Định ng...
  • [C/C++] nhập vào họ và tên, in ra tên viết chương trình [C/C++] nhập vào họ và tên , sau đó xử lý chuỗi và in ra tên của người đó. #include<stdio.h> #include<string.h...
  • 5. Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. 5. Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh. Tính điểm trung bình và xuất kết quả. #include<iostream> us...
  • [OOP C++] quản lý nhân viên và tính lương cho từng nhân viên bài tập OOP C++. Giả sử Công ty có hai loại nhân viên: Nhân viên văn phòng và Nhân viên sản xuất. Viết chương trình quản lý và tính lương ch...

Labels

  • bai tap c
  • bai tap oop
  • cau truc cay
  • danh sach lien ket
  • giai thuat
  • giao trinh hoc c
  • giao trinh oop
  • html
  • kien truc may tinh
  • lap trinh c
  • lap trinh web
  • linh tinh
  • linux
  • mang may tinh
  • may tinh
  • PHP
  • sap xep
  • SQL
  • tim kiem

Blog Archive

  • ▼  2015 (173)
    • ▼  June (17)
      • [oop c++] phạm vi truy xuất trong kế thừa
      • [oop c++] Kế thừa - định nghĩa, cú pháp, sử dụng
      • [oop c++] Quan hệ giữa các lớp đối tượng
      • [oop c++] Các nguyên tắc xây dựng lớp
      • [oop c++] Thành viên tĩnh – static member
      • [oop c++] hàm bạn, lớp bạn (friend function)
      • [oop c++] hàm thiết lập constructor, hủy bỏ destru...
      • [oop c++] con trỏ this và phép gán đối tượng
      • [OOP C++] Phạm Vi Truy Xuất Thành Phần Đối Tượng
      • Viết chương trình nhập số thực a từ bàn phím và tì...
      • [C/C++] nhập vào họ và tên, in ra tên
      • hàm xóa node trong cây nhị phân tìm kiếm
      • [C/C++] chương trình quản lý sách
      • [C/C++] quản lý điểm của lớp học
      • đề thi và đáp án môn cấu trúc dữ liệu và giải thuật
      • thao tác file với thư viện fstream
      • kinh nghiệm phỏng vấn học bổng NVĐ FPT

Categories

  • bai tap c
  • bai tap oop
  • cau truc cay
  • danh sach lien ket
  • giai thuat
  • giao trinh hoc c
  • giao trinh oop
  • html
  • kien truc may tinh
  • lap trinh c
  • lap trinh web
  • linh tinh
  • linux
  • mang may tinh
  • may tinh
  • PHP
  • sap xep
  • SQL
  • tim kiem

BTemplates.com

Đồng Hồ Gỗ, Tượng Gỗ Di Lặc, Phúc Lộc Thọ Dịch Vụ Kế Toán Tại Nhà Kế Toán  
  • Labels

    • bai tap c
    • bai tap oop
    • cau truc cay
    • danh sach lien ket
    • giai thuat
    • giao trinh hoc c
    • giao trinh oop
    • html
    • kien truc may tinh
    • lap trinh c
    • lap trinh web
    • linh tinh
    • linux
    • mang may tinh
    • may tinh
    • PHP
    • sap xep
    • SQL
    • tim kiem
  • Blogroll

    lap trinh 321
  • About

Copyright © Lập Trình 321 | Powered by Blogger Design by FThemes | Blogger Theme by Lasantha - Premium Blogger Templates | NewBloggerThemes.com

Từ khóa » Hàm Destructor Phải Trả Về Giá Trị Gì