Announcement

Collapse
No announcement yet.

Xin code minh họa oop lớp b31 chiều thứ 5 ngày 21 tháng 7

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C++] Xin code minh họa oop lớp b31 chiều thứ 5 ngày 21 tháng 7

    thầy ơi cho em xin code minh họa của bài học hôm đó đi ạ, em hiểu bài nhưng chưa nhớ được cách thầy code operator =

  • #2
    Originally posted by 09520192 View Post
    thầy ơi cho em xin code minh họa của bài học hôm đó đi ạ, em hiểu bài nhưng chưa nhớ được cách thầy code operator =
    cho cái đề đi bạn ơi! Tò mò quá!
    -----------------------------
    Mai Văn Khải
    Software Engineering, University Information of Technology
    a07d26eb5cbc98f77b36a461eb629456

    Comment


    • #3
      Originally posted by 09520133 View Post
      cho cái đề đi bạn ơi! Tò mò quá!
      buổi thứ 5 của thầy Toàn đó bạn

      Comment


      • #4
        Originally posted by 09520192 View Post
        buổi thứ 5 của thầy Toàn đó bạn
        Em nghĩ post lại cái đề để toàn forum góp ý sẽ nhanh hơn hay chờ chỉ những bạn đã đi học đúng lớp đó đúng buổi đó vào đây trả lời sẽ nhanh hơn?

        Comment


        • #5
          Originally posted by 07520004 View Post
          Em nghĩ post lại cái đề để toàn forum góp ý sẽ nhanh hơn hay chờ chỉ những bạn đã đi học đúng lớp đó đúng buổi đó vào đây trả lời sẽ nhanh hơn?
          code minh họa cho việc sử dụng operator= đó anh

          Comment


          • #6
            operator= của cái gì em? Operator= có thể là shallow copy hoặc deep copy, tùy vào tình huống cụ thể và ý đồ của người code mà

            Comment


            • #7
              operator đơn giản thôi anh, anh có code minh họa nào cũng được, em còn mơ hồ về cách sử dụng

              Comment


              • #8
                mình nhớ là thế này nè:
                operator = cần viết
                để các lện sau đúng ( xây dựng class PHANSO ha):
                a=b;
                a=2;
                2=a;
                với a và b là PHANSO;
                Hãy là chính mình!

                Comment


                • #9
                  Phân số chỉ có 2 dữ liệu là tử và mẫu thì operator cần phải deep copy. Nhưng mà cái 2=a thì đảm bảo là không chạy được, không thể gán biến a cho hằng số 2 được. Viết hàm thế nào cũng không chạy được.

                  Comment


                  • #10
                    vấn đề là thầy Toàn làm được

                    Comment


                    • #11
                      Tôi cũng không làm được cái 2 = a
                      Hình như em nhớ nhầm rồi, bữa đó Tôi demo cách chuyển đổi kiểu dữ liệu bằng
                      - Phương pháp thiết lập
                      - Phép toán chuyển kiểu.
                      Xem chi tiết ở slide số 5
                      Last edited by BiThuDoan; 23-07-2011, 23:50.
                      :happy:SỐNG TRONG MÁI NHÀ UIT, BẠN HÃY NHỚ :happy:
                      1. Chấp hành pháp luật, tuân thủ nội quy; 2. Tích cực học tập, chủ động nghiên cứu
                      3. Đi học đúng giờ, trang phục lịch sự; 4. Nhớ xếp hàng và đừng chen lấn
                      5. Sống có trách nhiệm và biết sẻ chia; 6. Giữ gìn tài sản chung như tài sản của chính bạn
                      7. Sử dụng tài sản, thời gian hiệu quả; 8. Khiêm tốn, lễ phép, hòa nhã, thân thiện
                      9. Không xả rác để không nhặt rác; 10. Văn minh, lịch sự dù trên lớp học, diễn đàn hay mạng xã hội

                      Comment


                      • #12
                        Code bài PHANSO nè
                        Code:
                        #include <iostream.h>
                        #include <math.h>
                        class PHANSO
                        {
                            private:
                                int Tu, Mau;
                            public:
                                // Chuyent tu int -> PHANSO
                                PHANSO(int Tuu=0, int Mauu=1)
                                {
                                    Tu = Tuu; Mau = Mauu;    
                                }
                                // Chuyent tu PHANSO --> float
                                operator float()
                                {
                                    return (float)Tu/Mau;
                                }
                                friend istream& operator>>(istream& xx, PHANSO& c)
                                {
                                    cout<<"Nhap tu, mau : ";
                                    xx>>c.Tu>>c.Mau;
                                    return xx;
                                }
                                friend ostream& operator<<(ostream& xx, PHANSO c)
                                {
                                    xx<<c.Tu<<"/"<<c.Mau<<endl;
                                    return xx;
                                }
                                friend PHANSO operator+(PHANSO a, PHANSO b)
                                {
                                    PHANSO tam;
                                    tam.Tu = a.Tu * b.Mau +  a.Mau * b.Tu;
                                    tam.Mau= a.Mau * b.Mau;
                                    return tam;    
                                }
                                PHANSO operator++()
                                {
                                    Tu = Tu + Mau;
                                    return (*this);
                                }
                                PHANSO operator++(int)
                                {
                                    PHANSO tam(*this);
                                    Tu = Tu + Mau;
                                    return tam;
                                }
                        };
                        main()
                        {
                            PHANSO b(2,3);// Khai bao bien b va gan cho Tu=2, Mau=3
                            PHANSO a(4,2);  // Khai bao bien a va gan cho Tu=2, Mau=1;
                            PHANSO c;
                            c = a + b;
                            c = a + 5; // ??? a + PHANSO(5)
                                       // ??? int(a) + 5
                            c = 5 + b;
                            c = b++;  // operator++(int)
                            cout<<b;// 5/3
                            cout<<c;// 2/3
                            c = ++a;  // operator++()
                            cout<<a;// 6/2
                            cout<<c;// 6/2
                            
                            float d = sqrt(b);
                             cout<<d;
                            system("PAUSE");
                        }
                        :happy:SỐNG TRONG MÁI NHÀ UIT, BẠN HÃY NHỚ :happy:
                        1. Chấp hành pháp luật, tuân thủ nội quy; 2. Tích cực học tập, chủ động nghiên cứu
                        3. Đi học đúng giờ, trang phục lịch sự; 4. Nhớ xếp hàng và đừng chen lấn
                        5. Sống có trách nhiệm và biết sẻ chia; 6. Giữ gìn tài sản chung như tài sản của chính bạn
                        7. Sử dụng tài sản, thời gian hiệu quả; 8. Khiêm tốn, lễ phép, hòa nhã, thân thiện
                        9. Không xả rác để không nhặt rác; 10. Văn minh, lịch sự dù trên lớp học, diễn đàn hay mạng xã hội

                        Comment


                        • #13
                          Thưa thầy,
                          Em ko chạy đc bài phân số mà thầy đưa vì hình như khai báo thiếu 1 số thư viện. Tuy nhiên em thấy việc dùng 2 hàm operator++(int) và operator++() đó ko cần thiết và chỉ cần thay bằng 1 hàm operaror() và em cài hàm đó như sau ạ :
                          Code:
                          PHANSO operator ++()
                          	{
                          		PHANSO temp;
                          		temp.tu=tu+mau;
                          		tu=tu+mau;
                          		temp.mau=mau;
                          		return temp;
                          	}

                          Comment


                          • #14
                            Originally posted by 07520110 View Post
                            Thưa thầy,
                            Em ko chạy đc bài phân số mà thầy đưa vì hình như khai báo thiếu 1 số thư viện. Tuy nhiên em thấy việc dùng 2 hàm operator++(int) và operator++() đó ko cần thiết và chỉ cần thay bằng 1 hàm operaror() và em cài hàm đó như sau ạ :
                            Code:
                            PHANSO operator ++()
                            	{
                            		PHANSO temp;
                            		temp.tu=tu+mau;
                            		tu=tu+mau;
                            		temp.mau=mau;
                            		return temp;
                            	}
                            bạn chép vào VS thì phải sửa system("PAUSE") = getch() <-- thẹm thư viện conio.h vào nhé.

                            Comment


                            • #15
                              Originally posted by 09520192 View Post
                              buổi thứ 5 của thầy Toàn đó bạn
                              Mình có học môn này đâu! Muốn biết cái đề để nghịch chút thôi mà
                              -----------------------------
                              Mai Văn Khải
                              Software Engineering, University Information of Technology
                              a07d26eb5cbc98f77b36a461eb629456

                              Comment

                              LHQC

                              Collapse
                              Working...
                              X