Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: [ Solved ]Lỗi về con trỏ

  1. #1
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Post [ Solved ]Lỗi về con trỏ

    Mình đang làm một bài như thế này.Nhưng chắc hàm contructor của mình có vấn đề mong mọi người giúp.
    file node.h
    C++ Code:
    1. class Node
    2. {
    3. private:
    4.     void *data;
    5.     int type;
    6.     Node *next;
    7.         Node()
    8.        {
    9.     data=NULL;
    10.     next=NULL;
    11.     type = 0;
    12.         }
    13.         ~Node()
    14.        {  
    15.         type=0;
    16.     delete next;
    17.     delete data;
    18.     next=NULL;
    19.     data=NULL;
    20.        }
    21.        friend class List;
    22. };
    ------file list.h
    C++ Code:
    1. class List
    2. {
    3. private:
    4.     Node *head;
    5.     int size;
    6.     Node *find(int index)const;
    7. public:
    8.         List()
    9.        {
    10.     head = NULL;
    11.     size=0;
    12.         }
    13.        
    14. }

    khi chạy bằng F11 thì nó báo lỗi ở chỗ khởi tạo file head là expression cannot be evaluated.
    Đã được chỉnh sửa lần cuối bởi thienthan34 : 14-10-2008 lúc 12:26 AM.

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Cái contructor trong file node.h sao lại để tầm vực private nhỉ
    sửa lại thành public đi bạn ơi.

    ps: Bạn post 2 bài cũng một lúc Mod box này cho bạn lên thớt đó

  3. #3
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    mình đặt là friend mà ko làm sao đâu.
    PS:Post nhầm không biết xóa thế nào.

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn xem kỹ xem nó báo lỗi dòng nào. Nếu vẫn ko khắc phục được thì up cả project lên, đưa code chay thế này kho test quá.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  5. #5
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Đây là phần liên quan đến Node
    Code:
    #ifndef node_h
    #define node_h
    #include<iostream.h>
    class Node
    {
    private:
    
    	void *data;
    	int type; //default 0; Paratheses 1;Operator 2; Value 3;
    	Node *next;
    
    	Node();
    	~Node();
    	Node(Parentheses aPar);
    	void Display()const;
    	friend class Expression;
    };
    
    #endif
    Code:
    #include<iostream.h>
    #include"parentheses.h"
    #include"node.h"
    Node::Node()
    {
    	data=NULL;
    	next=NULL;
    	type = 0;
    }
    Node::~Node()
    {
            type=0;
    	delete next;
    	delete data;
    	next=NULL;
    	data=NULL;
    }
    Node::Node(Parentheses aPar)
    {
    	data =&aPar;
    	type =1;
    }
    void Node::Display()const
    {
    	cout<<data<<endl;
    }

  6. #6
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    Mặc định [ Solved ]Lỗi về con trỏ

    Còn đây là cái liên quan đến dấu ngoặc

    C++ Code:
    1. #ifndef parenthese_h
    2. #define parenthese_h
    3. #include<iostream.h>
    4. class Parentheses
    5. {
    6. private:
    7.     char par;
    8. public:
    9.     Parentheses();
    10.     bool isParentheses(char ch)const;
    11.     void setParentheses(char ch);
    12.     char getParentheses()const;
    13.     void displayParentheses()const;
    14.     friend ostream& operator <<(ostream& out,const Parentheses& aPar);
    15.    
    16. };
    17. #endif
    C++ Code:
    1. #include<iostream.h>
    2. #include "parentheses.h"
    3. Parentheses::Parentheses()
    4. {
    5.     par=NULL;
    6. }
    7. bool Parentheses::isParentheses(char ch)const
    8. {
    9.     return(ch == '('||ch == ')');
    10. }
    11. void Parentheses::setParentheses(char ch)
    12. {
    13.     if(isParentheses(ch))
    14.         par=ch;
    15.     else
    16.         cout<<"Khong phai la dau ngoac \n";
    17. }
    18. char Parentheses::getParentheses()const
    19. {
    20.     return par;
    21. }
    22. void Parentheses::displayParentheses()const
    23. {
    24.     cout<<par<<endl;
    25. }
    26. ostream& operator <<(ostream& out,const Parentheses& aPar)
    27. {
    28.     out<<aPar.par;
    29.     return out;
    30. }

    Mình không biết cách đưa code vào cái có bao xung quanh có thể ẩn hiện như zkday2686
    Đã được chỉnh sửa lần cuối bởi thienthan34 : 14-10-2008 lúc 12:32 AM. Lý do: hỏi thêm:

  7. #7
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    bạn click vào câu báo lỗi xem nó đánh dấu ở dòng nào. Câu báo lỗi như bạn nói có thể là do nhầm lẫn dấu -> hoặc .
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  8. #8
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    C++ Code:
    1. #ifndef expression_h
    2. #define expression_h
    3. #include"node.h"
    4. class Expression
    5. {
    6. public:
    7.     Expression();
    8.     ~Expression()
    9.    
    10.     bool isEmptyExp()const;
    11.     int getLength()const;
    12.     void insertAParentheses(int index,Parentheses aParentheses);
    13. private:
    14.     Node *head;
    15.     int size;
    16.     Node *find(int index)const;
    17. };
    18.  
    19.  
    20. #endif

    C++ Code:
    1. Expression::Expression()
    2. {
    3.     head=NULL;
    4.     //head = new Node;
    5.     size=0;
    6. }
    7. Expression::~Expression()
    8. {
    9.     while(!isEmptyExp())
    10.     {
    11.         remove(1);
    12.     }
    13. }
    14. bool Expression::isEmptyExp()const
    15. {
    16.     return(size ==0);
    17. }
    18. int Expression::getLength()const
    19. {
    20.     return size;
    21. }
    22. Node *Expression::find(int index)const
    23. {
    24.     if(index<1||(index>getLength()))
    25.     {
    26.         return NULL;
    27.     }
    28.     else
    29.     {
    30.         Node *cur = head;
    31.         for(int skip=1;skip<index;skip++)
    32.         {
    33.             cur=cur->next;
    34.         }
    35.         return cur;
    36.     }
    37. }
    38. void Expression::insertAParentheses(int index,Parentheses aParentheses)
    39. {
    40.     cout<<"insert ne";
    41.     if(index<=0||index>size+1)
    42.     {
    43.         cout<<"insert loi ne";
    44.     }
    45.     else
    46.     {
    47.         if(index==1)
    48.         {
    49.             Node *newNode;
    50.             newNode = new Node;
    51.             newNode->data= &aParentheses;
    52.             newNode->type = 2;
    53.             newNode->next=head;
    54.             head = newNode;
    55.         }
    56.         else
    57.         {
    58.             if(index==size+1)
    59.             {
    60.                 Node *last = head;
    61.                 Node *cur = new Node;
    62.                 cur->data = &aParentheses;
    63.                 cur->type = 2;
    64.                 cur->next = NULL;
    65.                 if(head!=NULL)
    66.                 {
    67.                     while(last->next != NULL)
    68.                         last = last->next;
    69.                     last->next=cur;
    70.                 }
    71.                 else
    72.                     head = cur;
    73.             }
    74.             else
    75.             {
    76.                 Node *newNode;
    77.                 newNode = new Node;
    78.                 newNode->data = &aParentheses;
    79.                 newNode->type = 2;
    80.  
    81.                 Node *cur = find(index-1);
    82.                 newNode->next = cur->next;
    83.                 cur->next = newNode;
    84.             }
    85.         }
    86.     size++;
    87.     }
    88.    
    89. }
    90. void Expression::remove(int index)
    91. {
    92.     if(index>=1&&index<=getLength())
    93.     {
    94.         Node * pre=NULL;
    95.         Node *cur=head;
    96.        
    97.         if(index==1)
    98.         {
    99.             head=head->next;
    100.             cur->next=NULL;
    101.             delete cur;
    102.             cur=NULL;
    103.            
    104.         }
    105.         else
    106.         {
    107.             for(int i=1;i<index;i++)
    108.             {
    109.                 pre=cur;
    110.                 cur=cur->next;
    111.             }
    112.            
    113.             cur=pre->next;
    114.             pre->next=cur->next;
    115.             delete cur;
    116.             cur=NULL;
    117.         }
    118.         size--;
    119.     }
    120. }
    cái này gần như singly linked list vậy.Nhưng nó là làm trên mảng con trỏ void.Đây là bài mình là về biểu thức.Mỗi node là một con trỏ void có thể trỏ tới các kiểu dữ liệu khác nhau.Debug thì không lỗi.Nhưng chạy F11 có lỗi.
    Đã được chỉnh sửa lần cuối bởi thienthan34 : 14-10-2008 lúc 12:22 AM. Lý do: dễ nhìn hơn

  9. #9
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Vậy chương trình của bạn có nhiêu file thì nén và up lên đây đi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  10. #10
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Trích dẫn Nguyên bản được gửi bởi thienthan34 Xem bài viết
    Mình không biết cách đưa code vào cái có bao xung quanh có thể ẩn hiện như zkday2686
    Bạn tham khảo thêm ở đây nè bác Dr đã viết bài hướng dẫn nó nằm ở list Các thông báo quan trọng.
    http://forums.congdongcviet.com/showthread.php?t=6131

    xì pam 1 cái

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

  1. [ Solved ]Xây dựng lớp ĐỒTHI
    Gửi bởi bluesky_123078 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 09-11-2008, 09:34 AM
  2. [Solved] Hỏi về con trỏ
    Gửi bởi RedHatLinux9 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 17-09-2008, 08:01 AM
  3. [ Solved ]Cấp phát động
    Gửi bởi demontaihack trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 07-09-2008, 08:23 PM
  4. [ Solved ]Cần hướng dẫn về bài tập màng!!
    Gửi bởi itthuyloi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 03-06-2008, 03:00 PM
  5. [ Solved ]Sắp xếp hai dãy số
    Gửi bởi thuchanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 20-04-2008, 11:47 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