[Thi OOP] Nhiêu đây là quá đủ để đậu!


Diễn đàn chia sẻ kiến thức, kinh nghiệm về IT và cuộc sống!
 
Trang ChínhGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập
Top posters
Sakura (1124)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
hotboy (705)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
Già Làng (373)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
con_ca_nho90 (289)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
that_true (154)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
theanhkkt (143)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
phamay (137)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
lovelonelyman (134)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
o0ovioletstaro0o (128)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
stevenhung (122)
[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_lcap[Thi OOP] Nhiêu đây là quá đủ để đậu! Voting_bar[Thi OOP] Nhiêu đây là quá đủ để đậu! Vote_rcap 
Âm - Dương lịch
Clock
Logo
11TH02 Pro!
Liên kết
Tin tức 60s
Tin công nghệ
Thời sự 24h
Game Moblie

Share
 

 [Thi OOP] Nhiêu đây là quá đủ để đậu!

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 11:13

OOP – Những Điều Căn Bản Đến Hơi Căn Bản –
THI
Chào các bạn! Hôm nay mình lập topic này nhằm giúp chúng ta – nhất là các bạn chưa hiểu rõ về OOP có thể làm bài thi tốt nếu làm được những thứ vô cùng đơn giản sau đây:
1. OOP là gì? Đó chỉ là Lập trình hướng đối tượng thôi.
2. Lập trình hướng đối tượng là lập trình kiểu nào?
Đó chỉ là mô tả mọi thứ vào các Class và viết hàm xử lý – Như lập trình cấu trúc thì mô tả mọi thứ vào Struct.
3. Các thuật ngữ cơ bản nhất:
OOP - Lập trình hướng đối tượng.
Class – lớp đối tượng – nơi ta sẽ khai báo thuộc tính và phương thức cho đối tượng đó. Ví dụ: ta khai báo 1 class MEO (con mèo đó) thì nó sẽ có các thuộc tính (đặc điểm) như màu lông, cân nặng, chiều cao, giới tính. Và cho nó thêm vài phương thức (hành động) nữa như: kêu “meo meo”, chạy, ăn, bắt chuột. Thế là ta đã làm ra con mèo rồi đó!
4. Đối tượng (Object) : là thể hiện hay thực thể tồn tại thực tế của 1 lớp cụ thể (khó hiểu quá) – đơn giản hơn là nhà tui có con mèo đen, nhà ông có con mèo vàng, 2 con mèo này thuộc lớp Mèo cả, và ta gọi chúng là đối tượng của lớp Mèo.
5. Thuộc tính (Property) : là đặc điểm của đối tượng. Ví dụ, cho con mèo với các thuộc tính như màu lông, cân nặng, chiều cao, giới tính. ARRAY thì có mảng data[100], số phần tử n.
6. Phương thức (Method) : là hành động của đối tượng. Ví dụ con mèo biết đi, chạy, ăn. Cái ARRAY thì biết nhập, xuất…
7. Constructor : khởi tạo ban đầu cho đối tượng, ví dụ ta tạo ra con mèo, và ban đầu nó có lông đen, mắt đỏ, 4 chân, và chưa biết gì hết, thì đó là ta tạo ra con mèo ban đầu như vậy. Có 3 loại Constructor : Constructor, mặc định không đối số, Constructor có đối số, Constructor sao chép (chỉ dùng nếu có các thuộc tính là con trỏ *). Khi ta không khai báo 1 Constructor nào thì mặc định nó là Constructor không có đối số với các giá trị ban đầu của cac thuộc tính là NULL ứng với chuỗi và 0 đối với số.
8. Destructor : Dùng để hủy vùng nhớ khi cấp phát cho đối tượng. Thường thì khi ta có con trỏ trong thuộc tính thì mới dùng anh này, không thì thôi
Kinh nghiệm : thui thấy mấy anh lanh chanh, chơi con trỏ vào, rồi nào là Constructor copy, Destructor.. và rồi tha hồ mà ngắm mấy con giun (con trỏ) nó chạy lòng dòng báo lỗi chơi. Mà nếu xài mảng tĩnh thì ko cần chi mấy thứ đó, có cũng dư thừa. -> Ko hiểu bài nè.
9. Public : thường thì các phương thức nằm trong public.
10. Private: thường thì các thuộc tính nằm trong private
11. Protected: thường thì nếu lớp này muốn cho lớp khác kế thừa thì đặt các thuộc tính trong protected, không nên trong private nha!
12. Thừa kế: ví dụ tui có 1 muốn xây 1 căn nhà 3 tầng, nhưng đang xây được 2 tầng thì hết lúa. Và lúc đó ta được là căn nhà 2 tầng. Sau này có tiền thì ta muốn xây căn nhà 3 tầng đó. Chẳng lẽ lại xây mới, ko ai dại gì, ta tiếp tục nâng cấp căn nhà 2 tầng lên thành căn nhà 3 tầng. Tức là căn nhà 3 tầng nó đã thừa kế 2 tầng từ căn nhà 2 tầng kia. Đó là thừa kế. Thừa kế là đặc điểm rất rất quan trọng trong OOP. Nhờ nó mà ta sẽ không phải mất công xây lại từ đầu các ứng dụng của ta.
13. Đa hình: cái này các bạn tự tìm hiểu đi -> ko thi, ko nói. Good!
14. Overload toán tử: trong các KDL tự định nghĩa (ko hỉu cứ nói) thì anh C++ và tất cả ngôn ngữ khác không định nghĩa trước cho chúng ta các toán tử cổ điển như: + - * /, >>, << =, ==, > , <… Vì vậy ta phải tự viết thôi.
Tạm thời là vậy đi, Ai ko hiểu thì ráng đọc cho hiểu, ko hiểu nữa thì đọc sách, ko hiểu nữa thì cứ pmm mình hoặc các Mr. Pro trong lớp. Phần tiếp theo sẽ là 1 bài tập minh họa mẫu cực kỳ Kute và dễ hiểu.Very Happy
Về Đầu Trang Go down
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 11:16

Tiếp theo là phần bài tập mẫu.
Mình sẽ Demo 1 bài QUẢN LÝ NHÂN VIÊN đi. Vì Nhân viên nghe có vẻ gần với khái niệm đối tượng hơn là cái ARRAY : ))
Đề bài: Xây dựng lớp NHANVIEN với các thuộc tính: mã nhân viên, tên nhân viên, lương. Với các phương thức: nhập xuất, Overload các toán tử >>, <<, == (so sánh lương nhân viên), = (gán anh này bằng anh kia). Thế thôi.
Các bước làm: các bạn có thể tham khảo hoặc tự thiết kế các bước làm cho riêng mình, luyện tập nó cho max kill đi là Vô đối rồi.
1. Nhào vô,…… #include các thư viện trước đã.
2. Tiếp theo vẽ ngay cái class liền
Thiết kế như sau:
Code:
class NHANVIEN
{

};

Chú ý có dấu ; cuối class nhé.
3. Sau đó làm thêm vài thuộc tính trong đề bài: mã nhân viên, tên nhân viên, lương. Và nhớ để trong private
Code:
4.   class NHANVIEN
5.   {
6.      //Properties
7.   private:
8.      char ma[15];
9.      char ten[30];
10.      Unsigned long luong;
11.   
12.   };

Sau đó viết mấy cái thiết lập cái, Do đề không yêu cầu có cái hàm thiết lập nào, nên mình viết đại 2 cái đi, cái mặc định với cái có đối số là OK! Nhớ là phải để trong public. Và từ đây, có thể là tất cả mọi thứ sẽ là public.
Code:
class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

};

Chú ý hàm thiết lập là hàm trung gian, để truyền các đối số hợp lệ vào class. Ko nên truyền trực tiếp vào hàm Constructor có đối số, như vậy có thể phá hủy thuộc tính của đố tượng 1 cách vô tình mà ta ko thể lường trước được.

OK. Tiếp theo là hàm nhập, xuất.
Code:
class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

   void Nhap()
   {
      cout<<"Nhap Ma: ";
      gets(ma);
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      gets(ten);
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      cin>>luong;
   }

   void Xuat()
   {
      cout<<"\nMa: ";
      cout<<ma;
      cout<<"\nTen: ";
      cout<<ten;
      cout<<"\nLuong: ";
      cout<<luong;
   }
   

};

Test thử trong main cái:
Code:
int main()
{
   NHANVIEN A;
   A.Nhap();
   A.Xuat();
   _getch();
}
Và kết quả sẽ là:
Code:
Nhap Ma: 1

Nhap Ten: Le Xuan Hoang

Nhap Luong: 10000000

Ma: 1
Ten: Le Xuan Hoang
Luong: 10000000

OK!
Tiếp theo sẽ là hàm Overload toán tử >>, <<. Các bạn chú ý cú pháp nhá.
<<: tương đương cout<<
Cú pháp:
Code:
friend ostream &operator<<(ostream &o, NHANVIEN A)
   {
      return o;
   }
>>: tương đương cin>>
Cú pháp:
Code:
friend istream &operator>>(istream &i, NHANVIEN &A)
   {
      return i;
   }

OK! Sau đó ta viết cụ thể cho 2 hàm đó như sau:
Code:
class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

   void Nhap()
   {
      cout<<"Nhap Ma: ";
      gets(ma);
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      gets(ten);
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      cin>>luong;
   }

   void Xuat()
   {
      cout<<"\nMa: ";
      cout<<ma;
      cout<<"\nTen: ";
      cout<<ten;
      cout<<"\nLuong: ";
      cout<<luong;
   }

   friend ostream &operator<<(ostream &o, NHANVIEN A)
   {
      cout<<"\nMa: ";
      o<<A.ma;
      cout<<"\nTen: ";
      o<<A.ten;
      cout<<"\nLuong: ";
      o<<A.luong;
      return o;
   }

   friend istream &operator>>(istream &i, NHANVIEN &A)
   {
      cout<<"Nhap Ma: ";
      i>>A.ma;
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      i>>A.ten;
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      i>>A.luong;
      return i;
   }
   

};
Test trong main
int main()
{
NHANVIEN A;
cin>>A;
cout< _getch();
}
Và kết quả cũng là:
Code:
Nhap Ma: 1

Nhap Ten: Le Xuan Hoang

Nhap Luong: 10000000

Ma: 1
Ten: Le Xuan Hoang
Luong: 10000000

Tiếp theo là toán tử =
Code:
class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

   void Nhap()
   {
      cout<<"Nhap Ma: ";
      gets(ma);
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      gets(ten);
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      cin>>luong;
   }

   void Xuat()
   {
      cout<<"\nMa: ";
      cout<<ma;
      cout<<"\nTen: ";
      cout<<ten;
      cout<<"\nLuong: ";
      cout<<luong;
   }

   friend ostream &operator<<(ostream &o, NHANVIEN A)
   {
      cout<<"\nMa: ";
      o<<A.ma;
      cout<<"\nTen: ";
      o<<A.ten;
      cout<<"\nLuong: ";
      o<<A.luong;
      return o;
   }

   friend istream &operator>>(istream &i, NHANVIEN &A)
   {
      cout<<"Nhap Ma: ";
      i>>A.ma;
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      i>>A.ten;
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      i>>A.luong;
      return i;
   }

   void operator=(NHANVIEN A)
   {
      strcpy(ma, A.ma);
      strcpy(ten, A.ten);
      luong = A.luong;
   }
   

};


Và kết quả là:
Code:
Nhap Ma: 1

Nhap Ten: Le

Nhap Luong: 15000000

Ma: 1
Ten: Le
Luong: 15000000

Nhan Vien B:

Ma: 1
Ten: Le
Luong: 15000000

Cuối cùng là toán tử: ==
Code:
class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

   void Nhap()
   {
      cout<<"Nhap Ma: ";
      gets(ma);
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      gets(ten);
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      cin>>luong;
   }

   void Xuat()
   {
      cout<<"\nMa: ";
      cout<<ma;
      cout<<"\nTen: ";
      cout<<ten;
      cout<<"\nLuong: ";
      cout<<luong;
   }

   friend ostream &operator<<(ostream &o, NHANVIEN A)
   {
      cout<<"\nMa: ";
      o<<A.ma;
      cout<<"\nTen: ";
      o<<A.ten;
      cout<<"\nLuong: ";
      o<<A.luong;
      return o;
   }

   friend istream &operator>>(istream &i, NHANVIEN &A)
   {
      cout<<"Nhap Ma: ";
      i>>A.ma;
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      i>>A.ten;
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      i>>A.luong;
      return i;
   }

   void operator=(NHANVIEN A)
   {
      strcpy(ma, A.ma);
      strcpy(ten, A.ten);
      luong = A.luong;
   }

   bool operator==(NHANVIEN A)
   {
      if(luong == A.luong)
         return true;
      return false;
   }
   

};

Test trong main nào :
Code:
int main()
{
   NHANVIEN A;
   cin>>A;
   cout<<A;

   NHANVIEN B;
   B = A;
   cout<<"\n\nNhan Vien B:\n";
   cout<<B;

   if(A == B)
   {
      cout<<"\nLuong A = Luong B";
   }
   else
   {
      cout<<"\nLuong A != Luong B";
   }
   _getch();
}

Và kết quả sẽ là :
Code:
Nhap Ma: 1

Nhap Ten: Le

Nhap Luong: 12000000

Ma: 1
Ten: Le
Luong: 12000000

Nhan Vien B:

Ma: 1
Ten: Le
Luong: 12000000
Luong A = Luong B

OK! Tạm thời là vậy thôi, nhiêu đó cũng đủ để các bạn có thể lấy trên điểm trung bình rồi.
Bonus thêm đoạn code nguyên bài nè:
Code:
#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

class NHANVIEN
{
   //Properties
private:
   char ma[15];
   char ten[30];
   unsigned long luong;

public:
   //Constructor Mac Dinh
   NHANVIEN()
   {
      strcpy(ma, "");
      strcpy(ten, "");
      luong = 0;
   }

   //Khoi tao co doi so
   NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
   {
      ThietLap(_ma, _ten, _luong);
   }

   void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
   {
      strcpy(ma, _ma);
      strcpy(ten, _ten);
      if(_luong < 0)
         luong = 0;
      else
         luong = _luong;
   }

   void Nhap()
   {
      cout<<"Nhap Ma: ";
      gets(ma);
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      gets(ten);
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      cin>>luong;
   }

   void Xuat()
   {
      cout<<"\nMa: ";
      cout<<ma;
      cout<<"\nTen: ";
      cout<<ten;
      cout<<"\nLuong: ";
      cout<<luong;
   }

   friend ostream &operator<<(ostream &o, NHANVIEN A)
   {
      cout<<"\nMa: ";
      o<<A.ma;
      cout<<"\nTen: ";
      o<<A.ten;
      cout<<"\nLuong: ";
      o<<A.luong;
      return o;
   }

   friend istream &operator>>(istream &i, NHANVIEN &A)
   {
      cout<<"Nhap Ma: ";
      i>>A.ma;
      fflush(stdin);
      cout<<"\nNhap Ten: ";
      i>>A.ten;
      fflush(stdin);
      cout<<"\nNhap Luong: ";
      i>>A.luong;
      return i;
   }

   void operator=(NHANVIEN A)
   {
      strcpy(ma, A.ma);
      strcpy(ten, A.ten);
      luong = A.luong;
   }

   bool operator==(NHANVIEN A)
   {
      if(luong == A.luong)
         return true;
      return false;
   }
   

};

int main()
{
   NHANVIEN A;
   cin>>A;
   cout<<A;

   NHANVIEN B;
   B = A;
   cout<<"\n\nNhan Vien B:\n";
   cout<<B;

   if(A == B)
   {
      cout<<"\nLuong A = Luong B";
   }
   else
   {
      cout<<"\nLuong A != Luong B";
   }
   _getch();
}
OK! Đi ăn cơm đây, đói quá, các bạn có nhu cầu biết thêm gì thì cứ post lên ,mình sẽ cố gắng giải đáp!
Về Đầu Trang Go down
lovelonelyman

Member Năng Động


Member Năng Động
lovelonelyman

Nam Cancer

Số bài viết : 134
Điểm : 180
Được cảm ơn : 9
Ngày sinh : 15/07/1990
Tham gia ngày : 30/04/2010
Tuổi : 33
Đến từ : Thai Binh

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 14:35

H ơi cho m hỏi sao phải có hàm thiết lập, nếu ko có thì sao,tác dụng của nó là gì, mà H ơi chỉ giúp mình cái này nữa:
cái này là sao " ~nhanvien()" chẳng hạn nghĩa là gì,nó co tac dụng gì,
mình cần 1 câu tra lời chi tiết và cụ thể Very Happy
giúp m vói nhe
thanks! nhìu nhe Razz
Về Đầu Trang Go down
tkhking

Member Năng Động


Member Năng Động
tkhking

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! Panda-icon
Nam Pisces

Số bài viết : 114
Điểm : 135
Được cảm ơn : 1
Ngày sinh : 18/03/1990
Tham gia ngày : 01/07/2010
Tuổi : 34
Đến từ : Óc Trâu Lấy Ra
Ngề nghiệp : Student
Chăm ngôn : King

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 17:49

lovelonelyman đã viết:
H ơi cho m hỏi sao phải có hàm thiết lập, nếu ko có thì sao,tác dụng của nó là gì, mà H ơi chỉ giúp mình cái này nữa:
cái này là sao " ~nhanvien()" chẳng hạn nghĩa là gì,nó co tac dụng gì,
mình cần 1 câu tra lời chi tiết và cụ thể Very Happy
giúp m vói nhe
thanks! nhìu nhe Razz

tui xin mạng phép trả lời nha
hàm thiết lập là hàm mà khi mình khởi tạo 1 đối tượng mới thì nó sẽ gọi ngay đến hàm thiết lập...chỉ để khởi tạo giá trị ban đầu cho nó thôi đó mà..nếu mình không viết hàm thiết lập thì chương trình sẽ tự gọi hàm thiết lập mặt định...

còn ~nhanvien() đuợ gọi là hàm detructor nó có trách nhiệm là khi kết thúc thì chương trình sẽ gọi hàm này ra để giải phóng bộ nhớ đó mà nếu mình không viết thì chương trình cũng sẽ gọi hàm thiết lập mặt định thôi...
Về Đầu Trang Go down
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 18:03

tkhking đã viết:
lovelonelyman đã viết:
H ơi cho m hỏi sao phải có hàm thiết lập, nếu ko có thì sao,tác dụng của nó là gì, mà H ơi chỉ giúp mình cái này nữa:
cái này là sao " ~nhanvien()" chẳng hạn nghĩa là gì,nó co tac dụng gì,
mình cần 1 câu tra lời chi tiết và cụ thể Very Happy
giúp m vói nhe
thanks! nhìu nhe Razz

tui xin mạng phép trả lời nha
hàm thiết lập là hàm mà khi mình khởi tạo 1 đối tượng mới thì nó sẽ gọi ngay đến hàm thiết lập...chỉ để khởi tạo giá trị ban đầu cho nó thôi đó mà..nếu mình không viết hàm thiết lập thì chương trình sẽ tự gọi hàm thiết lập mặt định...

còn ~nhanvien() đuợ gọi là hàm detructor nó có trách nhiệm là khi kết thúc thì chương trình sẽ gọi hàm này ra để giải phóng bộ nhớ đó mà nếu mình không viết thì chương trình cũng sẽ gọi hàm thiết lập mặt định thôi...

Chương trình sẽ không gọi hàm Destructor mặc định đâu. Không giống bên Java, hay C#, tụi nó có cái chế độ thu gom rác tự động - nghĩa là mày cứ xài đi, việc dọn dẹp cứ để anh lo. C++ thì không có, vấn đề con trỏ vẫn là việc mà LTV đang phải ngán ngẫm khi đụng đến. Và nếu như ta quên không dọn dẹp (Free, Delete) thì hậu quả khó mà lường được. Do đó, trong mọi chương trình C++, nếu đã có sự xuất hiện của chú trỏ (new hay là gì đó bên C) thì phải có cụ delete, free đi theo, nếu không thì bọn rác nó cứ nằm trong đó hoài cho đến khi tắt máy. Và chú Destructor ko có nhiệm vụ tự dọn dẹp giống GC (bộ thu góm rác trong .NET) nên sẽ không được gọi 1 cách tự động, chỉ khi nào ta gọi nó thì nói mới chạy thôi.
Về Đầu Trang Go down
hotboy

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
hotboy

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! Hippopotamus-icon
Nam Aries

Số bài viết : 705
Điểm : 1043
Được cảm ơn : 9
Ngày sinh : 21/03/1990
Tham gia ngày : 13/05/2010
Tuổi : 34
Đến từ : BDU

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 19:20

[code]//Khoi tao co doi so
NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
{
ThietLap(_ma, _ten, _luong);
}

void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
{
strcpy(ma, _ma);
strcpy(ten, _ten);
if(_luong < 0)
luong = 0;
else
luong = _luong;
}
[\code]

sao lại phải viết thế này

viết z thì cũng có khác gì đâu

[code]//Khoi tao co doi so
NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
{
strcpy(ma, _ma);
strcpy(ten, _ten);
if(_luong < 0)
luong = 0;
else
luong = _luong;

}[/code]
Về Đầu Trang Go down
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime22/9/2010, 21:01

hotboy đã viết:
[code]//Khoi tao co doi so
NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
{
ThietLap(_ma, _ten, _luong);
}

void ThietLap(char _ma[15], char _ten[30], unsigned long _luong)
{
strcpy(ma, _ma);
strcpy(ten, _ten);
if(_luong < 0)
luong = 0;
else
luong = _luong;
}
[\code]

sao lại phải viết thế này

viết z thì cũng có khác gì đâu

[code]//Khoi tao co doi so
NHANVIEN(char _ma[15], char _ten[30], unsigned long _luong)
{
strcpy(ma, _ma);
strcpy(ten, _ten);
if(_luong < 0)
luong = 0;
else
luong = _luong;

}[/code]

OK! Không khác, tuỳ phong cách của mỗi người thôi, tui làm vậy là để chia nhỏ ra thành các phần khác nhau thôi, hàm ThietLap có thể dùng riêng hoặc dùng trong Constructor cũng đc! (Biện hộ tí thui. Hehe!)!
Về Đầu Trang Go down
kimgayme

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars16
kimgayme

Nam Virgo

Số bài viết : 5
Điểm : 7
Được cảm ơn : 0
Ngày sinh : 25/08/1990
Tham gia ngày : 08/05/2010
Tuổi : 33
Đến từ : gl

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime23/9/2010, 12:01

Nghe nói cái này đề mở mà ta!
Về Đầu Trang Go down
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime23/9/2010, 12:03

kimgayme đã viết:
Nghe nói cái này đề mở mà ta!
Không có đề mở đâu bạn, Đề mở là số người bị rụng hơi bị nhiều đó. Cô kêu đề vô 3 câu nho nhỏ thôi, chỉ cần hiểu bài là làm được à! Chúc tất cả may mắn!
Về Đầu Trang Go down
hotboy

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
hotboy

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! Hippopotamus-icon
Nam Aries

Số bài viết : 705
Điểm : 1043
Được cảm ơn : 9
Ngày sinh : 21/03/1990
Tham gia ngày : 13/05/2010
Tuổi : 34
Đến từ : BDU

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime23/9/2010, 14:33

vậy mấy bửa nay mây cán bộ khai thác thông tin của lớp có khai thác được gì từ cô chưa?như là:hình thức đề như thế nào?trọng tâm ở đâu ?chưa
Về Đầu Trang Go down
control_duty

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars16


Nam Scorpio

Số bài viết : 16
Điểm : 20
Được cảm ơn : 0
Ngày sinh : 10/11/1988
Tham gia ngày : 21/09/2010
Tuổi : 35
Đến từ : hat

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime23/9/2010, 18:24

làm sao biết chắc nhiêu đó là đủ đậu Sad!
cái này chỉ là 1 bài NHANVIEN thôi mà!
nếu chỉ đọc 1 bài này mà có thể làm ra những bài khác thì mình nghĩ họ không cần bài trên cũng có thể đủ đậu!
còn những người muốn đậu thì đọc cái này cho dù có thuộc lòng thì cũng chả thể làm những bài khác, cho dù có là tương tự!!
Về Đầu Trang Go down
Sakura

[Thi OOP] Nhiêu đây là quá đủ để đậu! Stars7
Sakura

Thú CƯng : [Thi OOP] Nhiêu đây là quá đủ để đậu! I-hate-Cats-icon
Nam Scorpio

Số bài viết : 1124
Điểm : 1688
Được cảm ơn : 35
Ngày sinh : 03/11/1990
Tham gia ngày : 16/03/2010
Tuổi : 33
Đến từ : Bình Dương
Ngề nghiệp : IT Student

[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime24/9/2010, 08:36

control_duty đã viết:
làm sao biết chắc nhiêu đó là đủ đậu Sad!
cái này chỉ là 1 bài NHANVIEN thôi mà!
nếu chỉ đọc 1 bài này mà có thể làm ra những bài khác thì mình nghĩ họ không cần bài trên cũng có thể đủ đậu!
còn những người muốn đậu thì đọc cái này cho dù có thuộc lòng thì cũng chả thể làm những bài khác, cho dù có là tương tự!!

Mình đâu có kêu các bạn "ôm tủ". Mà thông qua bài này, mình có thể giải thích cho các bạn những thứ căn bản nhất về OOP, từ các khái niệm đến các thao tác cơ bản nhất! Nếu các bạn hiểu bài này (hiểu chứ ko phải học thuộc, và phải làm được), thì mọi chuyện như thế là ko phải đủ đậu à? Siêng thì làm thêm vài bài như PHANSO, ARRAY, DATETIME... mà mình đã post lên trước đó. Không đậu nữa chắc hết cách! Hic!!!!!!!!!!!
Về Đầu Trang Go down
Sponsored content




[Thi OOP] Nhiêu đây là quá đủ để đậu! Empty
Bài gửiTiêu đề: Re: [Thi OOP] Nhiêu đây là quá đủ để đậu!   [Thi OOP] Nhiêu đây là quá đủ để đậu! I_icon_minitime

Về Đầu Trang Go down
 

[Thi OOP] Nhiêu đây là quá đủ để đậu!

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

 Similar topics

-
» nhập một chuổi có bao nhiêu ký tự xuất ra chuổi bấy nhiêu lần
» Nhiều Ebook hay nè
» Nhiều giáo trình bổ ích đe!!!
»  [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác
» Công Dụng Rất nhiều hàm trong thư viện C++

Permissions in this forum:Bạn không có quyền trả lời bài viết
IT World! :: HỌC TẬP :: Học Kỳ IV :: Lập Trình Hướng Dối Tượng(OOP)-