Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Lỗi nhỏ khi truy cập đến Class!!

  1. #1
    Ngày gia nhập
    02 2012
    Bài viết
    0

    Mặc định Lỗi nhỏ khi truy cập đến Class!!

    Khi mình loại bỏ 2 dòng 18 và 44 (có chú thích) thì run tốt. Thế nên lỗi đã xuất hiện ở đây, mình đã thử mọi cách nhưng vẫn ko sửa được. Nhờ vào các bạn vậy! Cảm ơn...

    Code:
        #include<iostream.h>
        #include<conio.h>
        #include<iomanip.h>
    
        class Toado2D
        {
              private:
                 int x;
                 int y;
                 Toado2D *next;
              public:
              
                 Toado2D()
                 {
                    x = 0;
                    y = 0;
                    next = NULL;
                 }  
                 ~Toado2D()
                 {
                    delete next;
                 }
                 void Laynext(Toado2D *M);        //dong 18
                 int operator<=(Toado2D *M);
                 int operator=(Toado2D *M);
                 int operator>(Toado2D *M);
                 friend istream &operator>>(istream &s, Toado2D *M);
                 friend ostream &operator<<(ostream &s, Toado2D *M);
        };
        Toado2D *first, *last, *p;
    
        void Toado2D::Laynext(Toado2D *M)
        {
           this->next = p;
        }
        void NhapToaDo()
        {
           char c;
           do
           {
              p = new Toado2D;
              cin>>p;
              if(first = NULL)
              {
                 first = p;
                 last = p;
              }
               else
              {
                 last->Laynext(p);                 //dong 44
                 last = p;
              } 
              cout<<"Ban co muon nhap tiep khong? (c/k)";
              c = getch();
           }while(c!='k');
        }
    
        istream &operator>>(istream &s, Toado2D *M)
        {
           cout<<"Nhap toa do (x, y): ";
           s>>M->x>>M->y;
           return s;
        }
        ostream &operator<<(ostream &s, Toado2D *M)
        {
           cout<<"Toa do da nhap \n";
           s<<"("<<M->x<<","<<M->y<<")"<<endl;
           return s;
        } 
    
        int Toado2D::operator<=(Toado2D *M)
        {
           if(this->x <= M->x && this->y <= M->y)
           return 1;
              else
              return 0;    
        }
        /*int Toado2D::operator=(Toado2D *M)
        {
           if(this->x = M->x && this->y = M->y)
           return 1;
              else
              return 0; 
        } */
        int Toado2D::operator>(Toado2D *M)
        {
           if(this->x > M->x && this->y > M->y)
           return 1;
              else
              return 0;
        }
        void Doi(Toado2D *&M, Toado2D *&N)
        {
           Toado2D *temp;
           temp = M;
           M = N;
           N = temp;
        }
        main()
        {
           first = NULL;
           last = NULL;
           NhapToaDo();
           getch();
            
        }
    
    Reply With Quote Reply With Quote
    Post Thanks / Like

  2. #2
    Ngày gia nhập
    10 2011
    Bài viết
    552

    1)Đầu tiên là sửa cái chỗ này lại đã rồi nói sau
    if(first = NULL) <------- Sửa lại đi
    2) Sau đó sửa lại operator >>.
    Nhập 1 đối tượng thì đối tượng đấy phải kiẻu tham chiếu chứ. Để trị vậy làm sao nhập xong mà có tác dụng
    ________________
    Xong rồi ngẫm lại điều này:
    Khi làm DSLK thì ngừoi ta thường làm thế này:
    2 lớp: 1 lớp là Node còn lớp kia là lớp List.
    Lớp node chứa thông tin 1 node còn lớp list chỉ có 1 trường chủ yếu là trường first.
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    02 2012
    Bài viết
    0

    Sửa xong nó lại bị gì rồi nè, hix
    Code:
    #include<iostream.h>
    #include<stdio.h>
    #include<conio.h>
    #include<iomanip.h>
    
    class Toado2D
    {
          private:
             int x;
             int y;
             Toado2D *next;
          public:
          
             Toado2D()
             {
                x = 0;
                y = 0;
                next = NULL;
             }  
             ~Toado2D()
             {
                delete next;
             }
             void SapXep()
             void Laynext(Toado2D *M);
             int operator<=(Toado2D *M);
             int operator=(Toado2D *M);
             int operator>(Toado2D *M);
             friend istream &operator>>(istream &s, Toado2D *&M);
             friend ostream &operator<<(ostream &s, Toado2D *&M);
    };
    Toado2D *first, *last, *p;
    
    void Toado2D::Laynext(Toado2D *M)
    {
       this->next = p;
    }
    void NhapToaDo()
    {
       char c;
       do
       {
          p = new Toado2D;
          cin>>p;
          if(first == NULL)
          {
             first = p;
             last = p;
          }
           else
          {
             last->Laynext(p);
             last = p;
          } 
          cout<<"Ban co muon nhap tiep khong? (c/k)";
          c = getch();
       }while(c!='k');
    }
    
    istream &operator>>(istream &s, Toado2D *&M)
    {
       cout<<"Nhap toa do (x, y): ";
       s>>M->x>>M->y;
       return s;
    }
    ostream &operator<<(ostream &s, Toado2D *&M)
    {
       cout<<"Toa do da nhap \n";
       s<<"("<<M->x<<","<<M->y<<")"<<endl;
       return s;
    } 
    
    int Toado2D::operator<=(Toado2D *M)
    {
       if(this->x <= M->x && this->y <= M->y)
       return 1;
          else
          return 0;    
    }
    int Toado2D::operator=(Toado2D *M)
    {
       if(this->x == M->x && this->y == M->y)
       return 1;
          else
          return 0; 
    } 
    int Toado2D::operator>(Toado2D *M)
    {
       if(this->x > M->x && this->y > M->y)
       return 1;
          else
          return 0;
    }
    void Doi(Toado2D *&M, Toado2D *&N)
    {
       Toado2D *temp;
       temp = M;
       M = N;
       N = temp;
    }
    /* void Toado2D::SapXep()
    {
       Toado2D *p, *q;
       p = first;
       q = p->next;
       do
       {
          if(p->y > q->y)
             Doi(q, p);
          if(q->next!=NULL)
             q = q->next;
          else
          {
             p = p->next;
             q = p->next;
          }
       }while(p!=NULL);
    }
    */
    main()
    {
       first = NULL;
       last = NULL;
       NhapToaDo();
       /*do
       {
          cout<<"1)Them toa do 2D";
          cout<<"2)Sap xep toa do tang dan theo truc tung";
          cout<<"3)Hien thi";
          cout<<"4)Thoat";
          if(c='1') */
          
      
       getch();
        
    }

Các đề tài tương tự

  1. Truy xuất tới interface của 1 class
    Gửi bởi kimcawin trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 05-10-2011, 02:39 PM
  2. Truy cập biến từ class này sang class kia xin giúp
    Gửi bởi baotran trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 02-12-2010, 09:20 AM
  3. Lỗi truy cập constructor của class ios_base
    Gửi bởi jempi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 27-08-2010, 01:53 PM
  4. Class kết nối và thực thi truy vấn SqlServer 2005
    Gửi bởi huynguyen trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 23
    Bài viết cuối: 16-03-2010, 11:14 PM
  5. Cách truy cập đối tượng trên Form từ class khác trong C#?
    Gửi bởi who_am_i trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 09-12-2008, 09:52 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn