Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Đang ở
    Hà Nội
    Bài viết
    0

    hàm tái định nghĩa toán tử gán

    Mã:
    #include<conio.h>
    #include<iostream>
    #include<string.h>
    //#include<fstream.h>
    using namespace std;
    class Gach{
          private : 
                  char* maso;
                  char* mau;
                  int soluong;
                  int dai;
                  int rong;
                  float giaban;
          public :
                 Gach();
                 Gach(char* ,char* , int ,int , int ,float );
                 Gach& operator = (const Gach&);
                 ~Gach();
                 Gach(const Gach&);
                 friend ostream& operator << (ostream& ,Gach);
                 friend istream& operator >>(istream&,Gach&);
                 float giabanle();
                 Gach& operator = (const Gach& j)
                 {
                      delete[] maso;
                      maso=strdup(j.maso);
                      delete[] mau;
                      mau=strdup(j.mau);
                      soluong=j.soluong;
                      dai=j.dai;
                      rong=j.rong;
                      giaban=j.giaban;
                      return *this;
                 }
          };
          Gach::Gach(){
                       maso= new char[10];
                       strcpy(maso," ");
                       mau=new char [50];
                       strcpy(mau," ");
                       soluong=0;
                       dai=0;
                       rong=0;
                       giaban=0;
                       }
          Gach::Gach(char* ms,char* m, int sl,int d,int r, float gb ){
                          // ms=new char[10];
                           maso=strdup(ms);
                           //m=new char[50];
                           mau=strdup(m);
                           soluong=sl;
                           dai=d;
                           rong=r;
                           giaban=gb;
                           }
         Gach::Gach(const Gach& g){
                           maso=strdup(g.maso);
                           mau=strdup(g.mau);
                           soluong=g.soluong;
                           dai=g.dai;
                           rong=g.rong;
                           giaban=g.giaban;
                           }
    
          Gach::~Gach(){
                        delete[] maso;
                        delete[] mau;
                        }
          ostream& operator <<(ostream& os,Gach g){
                   os<<"Ma So : "<<g.maso<<endl;
                   os<<"Mau : "<<g.mau<<endl;
                   os<<"So Luong : "<<g.soluong<<endl;
                   os<<"Chieu dai : "<<g.dai<<endl;
                   os<<"Chieu Rong : "<<g.rong<<endl;
                   os<<"Gia Ban : "<<g.giaban<<endl;
                   return os;
                   }
          istream& operator >>(istream& is,Gach& g){
                   cout<<"Nhap ma so : ";
                   is.getline(g.maso,9);
                   cout<<"Nhap mau : ";
                   is.getline(g.mau,49);
                   cout<<"Nhap So Luong : ";
                   is>>g.soluong;
                   cout<<"Nhap chieu dai : ";
                   is>>g.dai;
                   cout<<"Nhap chieu rong : ";
                   is>>g.rong;
                   cout<<"Gia Ban : ";
                   is>>g.giaban;
                   return is;
                   }
      
    int main(){
        Gach a("11111","nhan",12,32,43,2.3);
        cout<<a;
        getch();
        return 0;
        }
    lỗi cái toán tử gán ?? tai sao??

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    #include<conio.h>#include<iostream>#include<string.h> using namespace std;class Gach{      private :               char* maso;              char* mau;              int soluong;              int dai;              int rong;              float giaban;      public :             Gach();             Gach(char* ,char* , int ,int , int ,float );             //Gach& operator = (const Gach&);             ~Gach();             Gach(const Gach&);             friend ostream& operator << (ostream& ,Gach);             friend istream& operator >>(istream&,Gach&);             float giabanle();             Gach& operator = (const Gach& j)             {                  delete[] maso;                  maso=strdup(j.maso);                  delete[] mau;                  mau=strdup(j.mau);                  soluong=j.soluong;                  dai=j.dai;                  rong=j.rong;                  giaban=j.giaban;                  return *this;             }      };      Gach::Gach(){                   maso= new char[10];                   strcpy(maso," ");                   mau=new char [50];                   strcpy(mau," ");                   soluong=0;                   dai=0;                   rong=0;                   giaban=0;                   }      Gach::Gach(char* ms,char* m, int sl,int d,int r, float gb ){                      // ms=new char[10];                       maso=strdup(ms);                       //m=new char[50];                       mau=strdup(m);                       soluong=sl;                       dai=d;                       rong=r;                       giaban=gb;                       }     Gach::Gach(const Gach& g){                       maso=strdup(g.maso);                       mau=strdup(g.mau);                       soluong=g.soluong;                       dai=g.dai;                       rong=g.rong;                       giaban=g.giaban;                       }       Gach::~Gach(){                    delete[] maso;                    delete[] mau;                    }      ostream& operator <<(ostream& os,Gach g){               os<<"Ma So : "<<g.maso<<endl;               os<<"Mau : "<<g.mau<<endl;               os<<"So Luong : "<<g.soluong<<endl;               os<<"Chieu dai : "<<g.dai<<endl;               os<<"Chieu Rong : "<<g.rong<<endl;               os<<"Gia Ban : "<<g.giaban<<endl;               return os;               }      istream& operator >>(istream& is,Gach& g){               cout<<"Nhap ma so : ";               is.getline(g.maso,9);               cout<<"Nhap mau : ";               is.getline(g.mau,49);               cout<<"Nhap So Luong : ";               is>>g.soluong;               cout<<"Nhap chieu dai : ";               is>>g.dai;               cout<<"Nhap chieu rong : ";               is>>g.rong;               cout<<"Gia Ban : ";               is>>g.giaban;               return is;               }  int main(){    Gach a("11111","nhan",12,32,43,2.3);    cout<<a;    getch();    return 0;    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •