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

Đề tài: Hỏi về lớp trong C++ ???

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Mặc định Hỏi về lớp trong C++ ???

    Code:
    class number
    {
         private:
              int a,b;
         public:
              number (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    }
    
    class num:public number
    {
         private:
               int a,b;
         public:
              num (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int tong()
              {
                    return a+b;
              }
    }
    Khai báo như trên liệu có chính xác không các bạn ???
    Sao mình chạy nó lại báo lỗi tại vị trí:
    Code:
          num (int x,int y)
              {
                    a=x;
                    b=y;
              }
    Mình cũng không hiểu tại sao nữa. Hay là tại vì lớp num đã ké thừa lớp number nên mình không thề sử dụng hàm num(...,...) nữa.

    Bạn nào giúp mình với !!! Mình là newbee của C lọng cọng. THSSS !!!
    I know... nothing

  2. #2
    No Avatar
    N.V.T Khách

    Bạn thiếu khởi tạo 2 hàm tạo cho lớp number và num
    Bạn tạo thêm chúng như sau :
    Code:
    class number
    {
         private:
              int a,b;
         public:
              number(){};
              number (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    }
    
    class num:public number
    {
         private:
               int a,b;
         public:
              //num{};  :D
              //Sửa thành :
              num(){};
              num (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int tong()
              {
                    return a+b;
              }
    }
    Đã được chỉnh sửa lần cuối bởi N.V.T : 15-06-2007 lúc 07:49 PM.

  3. #3
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Hình như cũng ko dc bạn ơi :(
    Đoạn code đầy đủ của mình nè:

    Code:
    #include<iostream.h>
    
    class number
    {
         private:
              int a,b;
         public:
              number (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    };
    
    class num:public number
    {
         private:
               int a,b;
         public:
              num (int x,int y)
    		  {
    			  a=x;
    			  b=y;
    		  }
              int tong()
              {
                    return a+b;
              }
    };
    
    void main()
    {
    	num so(4,8);
    	cout<<"Tong="<<so.tong();
    }
    Mình chạy trên Visual C++ 6.0
    I know... nothing

  4. #4
    No Avatar
    N.V.T Khách

    Trích dẫn Nguyên bản được gửi bởi nguyen190887 Xem bài viết
    Hình như cũng ko dc bạn ơi :(
    Đoạn code đầy đủ của mình nè:

    Code:
    #include<iostream.h>
    
    class number
    {
         private:
              int a,b;
         public:
              number (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    };
    
    class num:public number
    {
         private:
               int a,b;
         public:
              num (int x,int y)
    		  {
    			  a=x;
    			  b=y;
    		  }
              int tong()
              {
                    return a+b;
              }
    };
    
    void main()
    {
    	num so(4,8);
    	cout<<"Tong="<<so.tong();
    }
    Mình chạy trên Visual C++ 6.0
    Hic , cái trên mình sửa lại rồi ,mình viết vội quá nên thiếu () ở chỗ num{} mà bạn không nhận ra à ?
    Code của bạn sửa lại như sau :
    Code:
    #include<iostream.h>
    
    class number
    {
         private:
              int a,b;
         public:
              number(){};
              number (int x,int y)
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    };
    
    class num:public number
    {
         private:
               int a,b;
         public:
              num(){};
              num (int x,int y)
    		  {
    			  a=x;
    			  b=y;
    		  }
              int tong()
              {
                    return a+b;
              }
    };
    
    void main()
    {
    	num so(4,8);
    	cout<<"Tong="<<so.tong();
    }
    Cách khác để sửa nữa là hãy cho 2 hàm tạo của bạn có giá trị là đối số mặc định :
    Code:
    #include<iostream.h>
    
    class number
    {
         private:
              int a,b;
         public:
              //number(){};ném cái này đi
              number (int x = 0,int y=0)//Khởi tạo cho đối số có giá trị mặc định ( tùy thích )
              {
                    a=x;
                    b=y;
              }
              int max()
              {
                    if (a>b) return a;
                    return b;
              }
    };
    
    class num:public number
    {
         private:
               int a,b;
         public:
              //num(){};ném cái này đi
              num (int x = 1000,int y = 1000)//Khởi tạo cho đối số có giá trị mặc định ( tùy thích )
    		  {
    			  a=x;
    			  b=y;
    		  }
              int tong()
              {
                    return a+b;
              }
    };
    
    void main()
    {
    	num so(4,8);
    	cout<<"Tong="<<so.tong();
    }
    Biên dịch lại xem bạn nhé , mình cũng biên dịch trên VC 6, chạy bon mà :
    Code:
     0 error(s), 0 warning(s)
    Đã được chỉnh sửa lần cuối bởi N.V.T : 15-06-2007 lúc 11:05 PM.

  5. #5
    Ngày gia nhập
    05 2007
    Bài viết
    64

    Mù đầu 2 ngày nay, cuối cùng cũng hỉu rồi. Cảm ơn bạn nhiều nhen !!!
    I know... nothing

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