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

Đề tài: Liên kết đơn trong Visual C++

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

    Mặc định Liên kết đơn trong Visual C++

    Các bạn cho mình hỏi chútd về các sử dụng liên kết đơn trong visual C++ với
    nếu mình làm như trong TC++ thì không chạy được
    ví dụ có 1 lkd như sau:
    Visual C++ Code:
    1. class Clkd  
    2. {
    3.     Clkd *next;int ma;
    4. public:
    5.     void setnull();
    6.     void setma(int a);
    7.     int getma();
    8.     Clkd * getnext();
    9.     void setnext(Clkd *p);
    10.     Clkd();
    11.     virtual ~Clkd();   
    12. };
    13. //cac phuong thuc
    14. void Clkd::setnext(Clkd *p)
    15. {
    16.     next=p;
    17. }
    18.  
    19. Clkd * Clkd::getnext()
    20. {
    21.     return this->next;
    22. }
    23.  
    24. int Clkd::getma()
    25. {
    26.     return this->ma;
    27. }
    28.  
    29. void Clkd::setma(int a)
    30. {
    31.     ma=a;
    32. }
    33.  
    34. void Clkd::setnull()
    35. {
    36.     this->next=NULL;
    37. }
    38. //cac ham can thiet
    39. void makenull(Clkd **t)
    40. {
    41.     t=NULL;
    42. }
    43. void them(Clkd **t,int ma)
    44. {
    45.     Clkd *p;
    46.     p=new Clkd;
    47.     p->setma(ma);
    48.     p->setnull();
    49.     Clkd *q;
    50.     q=*t;
    51.     if(q==NULL) q=p;
    52.     else
    53.     {
    54.         Clkd *q;
    55.         q=*t;
    56.         while(q->getnext!=NULL) q=q->getnext();
    57.         q->setnext(p);
    58.     }
    59. }
    60. int tim(Clkd **td,int ma)
    61. {
    62.     int kt=0;
    63.     Clkd *q;
    64.     q=*td;
    65.     if(q==NULL) return kt;
    66.     else
    67.     {
    68.         while(q!=NULL&&q->getma()!=ma) q=q->getnext();
    69.         if(q!=NULL) kt=1;
    70.         else kt=0;
    71.        
    72.     }return kt;
    73. }
    chạy debug thì báo lỗi ở chỗ q=*td
    không hiểu thế nào
    các pro cho y kiến với

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

    phương thức khởi tạo và hủy khai báo rồi sao không viết.không nên để virtual phương thức hủy.viết cho đủ đi nếu báo lỗi nữa thì tính tiếp

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

    q->getnext!=NULL
    Đã ghi thì ráng ghi hết đi. Hàm main đâu? nó báo lỗi gì?


    Trích dẫn Nguyên bản được gửi bởi rua_con Xem bài viết
    phương thức khởi tạo và hủy khai báo rồi sao không viết.không nên để virtual phương thức hủy.viết cho đủ đi nếu báo lỗi nữa thì tính tiếp
    Luôn để virtual cho phương thức hủy :|

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Trích dẫn Nguyên bản được gửi bởi Lugia Xem bài viết
    q->getnext!=NULL
    Đã ghi thì ráng ghi hết đi. Hàm main đâu? nó báo lỗi gì?




    Luôn để virtual cho phương thức hủy :|
    sr lộn qua phương thức khởi tạo

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

    đây là viết trên Visual C++ mà thì lấy đâu ra hàm main
    báo lỗi thì không báo lỗi j cả
    nhưng khi chạy thì nó ra một thông báo (có don't send,debug..do)
    còn hàm tạo và hủy thì khi mình tạo một lớp mới nó tự viết hàm tạo và hủy ra,nên chắc không phải do nó

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

    Mặc định Liên kết đơn trong Visual C++

    có bạn nào đã làm một bài Lkd trên visual C++ cho mình xem làm mẫu với

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    178

    Trích dẫn Nguyên bản được gửi bởi xuancuongdo Xem bài viết
    đây là viết trên Visual C++ mà thì lấy đâu ra hàm main
    báo lỗi thì không báo lỗi j cả
    nhưng khi chạy thì nó ra một thông báo (có don't send,debug..do)
    còn hàm tạo và hủy thì khi mình tạo một lớp mới nó tự viết hàm tạo và hủy ra,nên chắc không phải do nó
    Visual C++ Code:
    1. #include "iostream"
    2. using namespace std;
    3. class Clkd  
    4. {
    5.     Clkd *next;int ma;
    6. public:
    7.     void setnull();
    8.     void setma(int a);
    9.     int getma();
    10.     Clkd();
    11.     virtual ~Clkd();
    12.     Clkd * getnext();
    13.     void setnext(Clkd *p);
    14. };
    15. Clkd::Clkd()
    16. {
    17.     next = NULL;
    18.     ma = 0;
    19. }
    20. Clkd::~Clkd()
    21. {
    22.     next = NULL;
    23.     delete next;
    24.     ma = 0;
    25. }
    26. //cac phuong thuc
    27. void Clkd::setnext(Clkd *p)
    28. {
    29.     next=p;
    30. }
    31.  
    32. Clkd * Clkd::getnext()
    33. {
    34.     return this->next;
    35. }
    36.  
    37. int Clkd::getma()
    38. {
    39.     return this->ma;
    40. }
    41.  
    42. void Clkd::setma(int a)
    43. {
    44.     ma=a;
    45. }
    46.  
    47. void Clkd::setnull()
    48. {
    49.     this->next = NULL;
    50. }
    51. //cac ham can thiet
    52. void makenull(Clkd **t)
    53. {
    54.     t=NULL;
    55. }
    56. void them(Clkd **t,int ma)
    57. {
    58.     Clkd *p;
    59.     p=new Clkd();
    60.     p->setma(ma);
    61.     p->setnull();
    62.     Clkd *q;
    63.     q=*t;
    64.     if(q==NULL) q=p;
    65.     else
    66.     {
    67.         Clkd *q;
    68.         q=*t;
    69.         while(q->getnext())
    70.         {
    71.             q=q->getnext();
    72.         }
    73.         q->setnext(p);
    74.     }
    75. }
    76. int tim(Clkd **td,int ma)
    77. {
    78.     int kt=0;
    79.     Clkd *q;
    80.     q=*td;
    81.     if(q==NULL) return kt;
    82.     else
    83.     {
    84.         while(q!=NULL&&q->getma()!=ma) q=q->getnext();
    85.         if(q!=NULL) kt=1;
    86.         else kt=0;
    87.  
    88.     }return kt;
    89. }
    90. int main()
    91. {
    92.     return 0;
    93. }
    visual 2005.sửa hết lỗi rồi đấy.lỗi đầy ra mà la không có.còn tớ chả biết cậu viết cái j chỉ sửa cho hết lỗi thôi

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

    bài trên là mình sử dụng ứng dụng MFC Application Winzar của Visual C++6.0 để làm
    còn nhiều hàm nữa nhưng không liên quan nên mình không đưa vào
    chứ không phải như bạn đã chỉ dẫn,bài mình khi chạy thì không báo lỗi gì cả nhưng chạy thì nó thát ra ngay
    chạy debug thì nó báo lỗi ở chỗ q=*t
    nếu cần mình sẽ gửi bài lên mội người sửa hộ nhé

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

    trong đó có phần dùng liên kết đơn đó
    mọi người xem hộ nha
    Attached Files Attached Files

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

  1. thắc mắc về cách liên kết giữa visual va sql sever 2008
    Gửi bởi haiduong1814 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 3
    Bài viết cuối: 21-01-2013, 09:29 AM
  2. [Hỏi] Hàm performStep() của Visual C# 2005 trong Visual C# 2008
    Gửi bởi thangnhokpro trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 29-11-2012, 07:45 AM
  3. Lỗi Visual Studio 2010 không tạo project được trong Visual C++
    Gửi bởi lekhanhduy_lkd trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 21-02-2012, 10:39 PM
  4. Add XML vào tool box trong visual 2010 như trong Visual 2008
    Gửi bởi anhlavip_10a4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 18-12-2011, 02:40 PM
  5. Liên kết giữa các Dialog Visual C++ 6.0
    Gửi bởi congtuazx trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 17-10-2009, 03:38 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