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

Đề tài: Tại sao hàm tạo tham số mặc định không hoạt động

  1. #1
    Ngày gia nhập
    03 2012
    Nơi ở
    Minh Khai- Hai Bà Trưng - Hà Nội
    Bài viết
    78

    Wink Tại sao hàm tạo tham số mặc định không hoạt động

    Mọi người cho mình hỏi mình có đoạn code này ko hiểu tại sao mà hàm tạo lop(); khôgn hoạt động khi mình ko nhập tham số nhỉ?
    Nhưng chỉ cần bỏ đoạn
    PHP Code:
    cin>>a
    trong main đi là lại chạy bình thường?
    PHP Code:
    #include<iostream.h>
    #include<string>
    using namespace std;
    class 
    lop{
        protected:
        
    char tlop[30];
        
    char tkhoa[30];
        
    //char y;
        
    public:
        
    lop();    
        
    friend ostreamoperator<<(ostreamout,lop& var)
        {
        
    out<<"Ten lop la:["<<var.tlop<<"]"<<endl;
        
    out<<"Ten khoa la:["<<var.tkhoa<<"]"<<endl;
        return 
    out;
        }
        
    friend istreamoperator>>(istreamin,lopvari)
        {
        
    cout<<"Nhap ten lop : ";in.getline(vari.tlop,30);
        
    cout<<endl;
        
    in.ignore(1);
        
    cout<<"Nhap ten khoa: ";in.getline(vari.tkhoa,30);
        
    cout<<endl;
        return 
    in;
        }
    };
    lop::lop()
    {
    strcpy(tlop,"Khongco");
    strcpy(tkhoa,"khongco");
    }

    int main()
    {
        
    lop a;
        
    cin>>a;
        
    cout<<"----------"<<endl;
        
    cout<<a<<endl;
        
        return 
    0;

    no signature

  2. #2
    Ngày gia nhập
    02 2012
    Nơi ở
    Xanhpetecbua-Nga
    Bài viết
    34

    hàm tao nó đã hoạt động ngay khi cậu khai báo biến a, nhưng khi cậu gọi tới phương thức nhập thì nó sẽ sử dụng dữ liệu nhập vào kêu cả dữ liệu nhập là rỗng
    vd chứng minh hàm tao vẫn làm việc bình thường:
    C++ Code:
    1. int main()
    2. {
    3.     lop a;
    4.     cout<<a<<endl;
    5.     system("pause");
    6.     cout<<"----------"<<endl;
    7.     cin>>a;
    8.     cout<<"----------"<<endl;
    9.     cout<<a<<endl;
    10.     system("pause");
    11.     return 0;
    12. }

  3. #3
    Ngày gia nhập
    03 2012
    Nơi ở
    Minh Khai- Hai Bà Trưng - Hà Nội
    Bài viết
    78

    Như vậy làm sao để mình ko nhập gì thì nó chạy hàm tạo?
    Bởi lẽ cũng khó lòng mà thay thế được kiểu dữ liểu char
    no signature

  4. #4
    Ngày gia nhập
    02 2012
    Nơi ở
    Xanhpetecbua-Nga
    Bài viết
    34

    hàm tao nó chỉ đc gọi tới khi khai báo biến thôi, không nhập gì mà muốn nó hiển thị giá trị mặc định như hàm tạo thì bạn viết thêm cái phương thức khác là đc thôi
    chẳng hạn mình viết thêm 2 phương thức thế này
    C++ Code:
    1. class lop
    2. {
    3. /....
    4. int kt()
    5.      {
    6.       if(strlen(tlop)==0)
    7.       return strlen(tkhoa);
    8.       return strlen(tlop);
    9.      }
    10.     void macdinh()
    11.      {
    12.       strcpy(tlop,"Khongco");
    13.       strcpy(tkhoa,"khongco");
    14.      }
    15. }
    16. int main()
    17.  {
    18.   //...
    19.   if(a.kt()==0)a.macdinh();
    20.   cout<<a<<endl;
    21.   //...
    22.   }

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

    vậy sao khi thay đổi kiểu char thành int tlop và int tkhoa và đổi hàm lop() có định nghĩa là tlop=tkhoa=3 thì nó lại hoạt động bình thường nhỉ

  6. #6
    Ngày gia nhập
    02 2012
    Nơi ở
    Xanhpetecbua-Nga
    Bài viết
    34

    Mặc định Tại sao hàm tạo tham số mặc định không hoạt động

    hoạt động bình thường là thế nào hả bạn?
    bạn viết thay kiểu gì để nó hoạt động bt, code của bạn đâu
    chẳng hiểu chữ bt của cậu là nói về cái gì

  7. #7
    Ngày gia nhập
    03 2012
    Nơi ở
    Minh Khai- Hai Bà Trưng - Hà Nội
    Bài viết
    78

    bình thường tức là:
    1. Không cần hàm check() kìa làm j cả
    2. Khi không nhập dữ liệu, mặc định nó được định nghĩa trong lop()
    đây là ví dụ chương trình sau:
    PHP Code:
    #include<iostream.h>
    class vector{
    private:
            
    int x,y;
    public:    
            
    friend ostream&operator <<(ostream&ravector&v);
            
    friend istream&operator >>(istream&vaovector&v);
            
    vector();
    };
    ostream&operator <<(ostream&ravector&v)
        {
        
    ra<<"Vector co toa do (x,y)=("<<v.x<<","<<v.y<<")"<<endl;
        return 
    ra;
        }
    istream&operator >>(istream&vaovector&v)
        {
            
    cout<<"Nhap vector x y:";
            
    vao>>v.x;
            
    cout<<"y:";
            
    vao>>v.y;
        return 
    vao;
        }
    vector::vector()
        {
        
    x=y=0;
        }
    int main()
            {
            
    vector a;
            
    cin>>a;
            
    cout<<a;
            return 
    0;
            } 
    khi nhập chữ cái hoặc kí tự ko phải là số, nó sẽ trả về (x,y)=(0,0);
    no signature

  8. #8
    Ngày gia nhập
    02 2012
    Nơi ở
    Xanhpetecbua-Nga
    Bài viết
    34

    ví dụ của cậu thật ngây thơ, thôi về học lại các kiểu dữ liệu đi, chẳng có kiến thức cơ bản, giải thích mệt

  9. #9
    Ngày gia nhập
    03 2012
    Nơi ở
    Minh Khai- Hai Bà Trưng - Hà Nội
    Bài viết
    78

    Trích dẫn Nguyên bản được gửi bởi buithetai Xem bài viết
    ví dụ của cậu thật ngây thơ, thôi về học lại các kiểu dữ liệu đi, chẳng có kiến thức cơ bản, giải thích mệt
    Tất nhiên là nếu mình không"ngây thơ" thì đâu phải lên đây hỏi nhỉ?
    Vậy bạn không"ngây thơ" thì giải thích giúp mình 2 cái ví dụ trên khác nhau ở chỗ nào về phương thức, cách hoạt động mà lại kết quả khác nhau vậy?

    Code thứ 2 và code thứ 1 trong hàm main có khác j nhau?
    nếu như lập luận của bạn là nó hoạt động ngay sau khi khai báo biến thuốc class đó, OK mình hiểu chỗ đó, vậy sao code 1 và 2 lại cho ra 2 kết quả khác nhau?

    PS: Mình ko biết mới hỏi, chứ ko hỏi để bạn bảo
    ví dụ của cậu thật ngây thơ, thôi về học lại các kiểu dữ liệu đi, chẳng có kiến thức cơ bản, giải thích mệt
    Vậy biết rồi hỏi làm chi nữa?

    PS: Admin cũng xem lại cách làm việc, như vậy có dc coi là bài
    Nhảm nhí, không liên quan đến topic không?
    no signature

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

  1. Cho bé tham gia hoạt động tiếng Anh ngoại khóa với GV nước ngoài
    Gửi bởi rosieatigon trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 17-06-2013, 02:13 PM
  2. Kỹ thuật C Tìm hiểu về cách thức hoạt động của tham số dòng lệnh trong lập trình C và C++
    Gửi bởi GACN trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 16-05-2013, 04:18 PM
  3. Bài tập C Bài tập tính lãi ngân hàng dùng đệ quy hoặc tham chiếu, tham trị
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-10-2012, 08:24 AM
  4. web tutorial dành cho những bạn mới bắt đầu học C/C++ hoặc bất kỳ ai tham khảo
    Gửi bởi chiga9x trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 17-11-2011, 03:12 AM
  5. cần xin 1 số bài tập quy hoạch động bằng C++ và C# để tham khảo
    Gửi bởi lapmaihokdc trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 09-04-2011, 03:30 PM

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