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 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    Code này ko cấp phát vùng nhớ nên sẽ sinh lỗi.
    chỉnh giúp e đc ko ạ!

    sr vi chua biet cach post bai

    - - - Nội dung đã được cập nhật ngày 24-09-2014 lúc 08:39 PM - - -

    Trích dẫn Gửi bởi acthu489
    - bạn muốn hỏi vấn đề gì trong đoạn code trên ? (mà DD là gì vậy)
    e muốn nhờ các ac sửa lại code cho code chạy đúng
    DD la diễn đàn đó a [IMG]images/smilies/11.gif[/IMG]

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    ~ThiSinh()    {        //!!!!!!!!!!! cấp phát mảng thì phải xóa mảng !!!!!!!!!!!!!!!!!        delete[] HoTen;        //    ^^ chú ý        delete[] SoBD;        //    ^^ chú ý     }    void SetHT()    {        //char* HT; khai báo con trỏ ...         std::cout << "Ho Ten Thi Sinh : ";        fflush(stdin);         //gets(HT); ... chưa cấp phát mà đã dùng ?                //sửa lại        //!!!!!!!!!!! có thể tràn bộ đệm !!!!!!!!!!!!!!        gets(HoTen); //tại sao ko làm thế này luôn mà phải strcpy?    }
    1. Bạn nên đọc thêm (hay học lại) các vấn đề liên quan đến con trỏ và cấp phát động (chắc bạn học C xong rồi mới C++? thế này là hổng kiến thức nặng rồi!).
    2. Xem lại phần kế thừa: trong code bạn đang định diễn tả "Điểm là học sinh" ??

  4. #4

    E là thành viên mới (mới tinh) của DD. Em có bài tập về kế thừa trong C++ vì e tự học trước(ở trường chưa học đến)

    #include<iostream>
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>

    class ThiSinh
    {
    char *HoTen;
    char *SoBD;
    public :
    ThiSinh();
    ThiSinh(char *HT=NULL, char *SBD=NULL)
    {
    HoTen=new char[strlen(HT)+1];
    SoBD=new char[strlen(SBD)+1];
    strcpy(HoTen,HT);
    strcpy(SoBD,SBD);
    }
    ~ThiSinh()
    {
    delete HoTen;
    delete SoBD;

    }
    void SetHT()
    {
    char *HT;
    std::cout << "Ho Ten Thi Sinh : ";
    fflush(stdin);gets(HT);
    strcpy(HoTen,HT);
    }
    char *GetHT()
    {
    return HoTen;
    }
    void SetSBD()
    {
    char *SBD;
    std::cout << "So Bao Danh : ";
    fflush(stdin);gets(SBD);
    strcpy(SoBD,SBD);
    }
    char *GetSBD()
    {
    return SoBD;
    }
    void SetTS()
    {
    SetHT();
    SetSBD();
    }
    void ShowTS()
    {
    std::cout << "
    So Bao Danh : " << SoBD;
    std::cout << "
    Ho Ten : " << HoTen;
    }
    };

    class Diem : public ThiSinh
    {
    float DiemToan;
    float DiemVan;
    public :
    Diem(char *HT, char *SBD, float DT=0, float DV=0) : ThiSinh(HT,SBD)
    {
    DiemToan=DT;
    DiemVan=DV;
    }
    ~Diem()
    {
    DiemToan = 0;
    DiemVan = 0;
    }
    void SetDT()
    {
    std::cout << "Diem Tong Ket Mon Toan : ";
    std::cin >> DiemToan;
    }
    float GetDT()
    {
    return DiemToan;
    }
    void SetDV()
    {
    std::cout << "Diem Tong Ket Mon Van : ";
    std::cin >> DiemVan;
    }
    void Set2()
    {
    ThiSinh::SetTS();
    SetDT();
    SetDV();
    }
    void Show2()
    {
    ThiSinh::ShowTS();
    std::cout << "
    Diem Tong Ket Mon Toan : " << DiemToan;
    std::cout << "
    Diem Tong Ket Mon Van : " << DiemVan;
    }
    };

    int main()
    {
    int n;
    std::cout << "
    So Thi Sinh Du Thi : "; std::cin >> n;
    Diem A[100];
    if(n!=0)
    {
    for(int i=0; i<n; i++)
    {
    std::cout << "
    Thi Sinh Thu " << i+1;
    A[i].Set2();
    }
    for(int i=0;i<n;i++)
    {
    std::cout << "
    " << i+1;
    A[i].Show2();
    }
    }
    else
    std::cout << "
    Khong Co Thi Sinh Du Thi";
    getch();
    return 0;
    }

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    - bạn muốn hỏi vấn đề gì trong đoạn code trên ? (mà DD là gì vậy)

 

 

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
  •