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

Đề tài: Lập trình C++ | Ép kiểu dữ liệu cấu trúc và class trong C++

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

    Mặc định Lập trình C++ | Ép kiểu dữ liệu cấu trúc và class trong C++

    Muốn nutMoi->tiep=bangBam[viTri]; Tai đây có loi la:'=' : cannot convert from 'struct BangBam::them::SIEUDL *' to 'struct SieuDL *'
    có thể sửa giúp mình dc khong?
    C++ Code:
    1. #include<iostream>
    2. #include<conio.h>
    3. #define KICHTHUOC_MD 101
    4. typedef int KieuKhoa;
    5. typedef int KieuGiaTri;
    6.  
    7. typedef struct SieuDl
    8. {
    9.     struct SieuDl(KieuKhoa khoa,KieuGiaTri giaTri)
    10.     {
    11.         this->khoa=khoa;
    12.         this->giaTri=giaTri;
    13.         tiep=NULL;
    14.     }
    15.     KieuKhoa khoa;
    16.     KieuGiaTri giaTri;
    17.     struct SieuDL *tiep;
    18.  
    19. }SIEUDL;
    20.  
    21. //BANG BAM
    22. class BangBam
    23. {
    24. private:
    25.     int kichThuoc ;
    26.     int hamBam(KieuKhoa);
    27.     SIEUDL **bangBam;
    28. public:
    29.  
    30.      BangBam(int kichThuoc=KICHTHUOC_MD);
    31.     ~BangBam();
    32.     void them(KieuKhoa,KieuGiaTri);
    33.     void xoa(KieuKhoa);
    34.     SIEUDL *tim(KieuKhoa);
    35.     void huyBangBam();
    36.     void duyetBangBam();
    37. };
    38. #include<iostream.h>
    39. #include<conio.h>
    40. #include"bangBam.h"
    41.  
    42.  
    43. BangBam::BangBam(int kichThuoc)
    44. {
    45.     this->kichThuoc=kichThuoc;
    46.     SIEUDL **bangBam=new SIEUDL*[this->kichThuoc];
    47.  
    48.     for(int i=0;i<this->kichThuoc;i++)
    49.         bangBam[i]=NULL;
    50. }
    51.  
    52. /////////HAM HUY
    53. BangBam::~BangBam()
    54. {
    55.     huyBangBam();
    56. }
    57.  
    58. ///////THEM MOT PHAN TU VAO BANG BAM
    59. void BangBam::them(KieuKhoa khoa,KieuGiaTri giaTri)
    60. {
    61.     SIEUDL *nutMoi=new SIEUDL(khoa,giaTri);
    62.     int viTri=hamBam(khoa);
    63.     if(bangBam[viTri]==NULL)//chua co phan tu nao trong vi tri nay
    64.         bangBam[viTri]=nutMoi;
    65.     else// truong hop xay ra dung do
    66.     {
    67.         [B] nutMoi->tiep=bangBam[viTri];[/B]   
    68.                  bangBam[viTri]=nutMoi;
    69.     }
    70. }
    71.  
    72.  
    73. //////HAM BAM
    74. int hambam(KieuKhoa khoa)
    75. {
    76.     return khoa%2;
    77.  
    78. }
    79. //////TIM MOT PHAN TU CO KHOA khoa
    80. SIEUDL *BangBam::tim(KieuKhoa khoa)
    81. {
    82.     int viTri=hamBam(khoa);
    83.     SIEUDL *p=bangBam[viTri];
    84.     while (p!=NULL)
    85.     {
    86.         if(p->khoa==khoa)
    87.             return p;
    88.         else
    89.             p=p->tiep;
    90.     }
    91.     return NULL;
    92. }
    93.  
    94. ///////XOA MOT PHAN TU TRONG BANG BAM
    95. void BangBam::xoa(KieuKhoa khoa)
    96. {
    97.     SIEUDL *p=tim(khoa);
    98.     if(p==NULL)
    99.         cout<<"khong co khoa nay"<<endl;
    100.     else
    101.     {
    102.         int viTri=hamBam(khoa);
    103.         SIEUDL *dau=bangBam[viTri];
    104.         if(p==dau)
    105.             bangBam[viTri]=p->tiep;
    106.         else
    107.         {
    108.             //tim truoc p
    109.             SIEUDL *q=dau;
    110.             while(q->tiep!=p)
    111.                 q=q->tiep;
    112.             q->tiep=p->tiep;
    113.         }
    114.         delete p;
    115.     }
    116. }
    117.  
    118. ////////HUY BANG BAM
    119. void BangBam::huyBangBam()
    120. {
    121.     for(int i=0;i<this->kichThuoc;i++)
    122.     {
    123.         SIEUDL *dau=bangBam[i];
    124.         SIEUDL *tam;
    125.  
    126.         while (dau!=NULL)
    127.         {
    128.             tam=dau;
    129.             dau=dau->tiep;
    130.             delete tam;
    131.         }
    132.     }
    133. }
    134.  
    135. ///////DUYET BAMG BAM
    136. void BangBam::duyetBangBam()
    137. {
    138.     for(int i=0;i<this->kichThuoc;i++ )
    139.     {
    140.         SIEUDL *dau=bangBam[i];
    141.         SIEUDL *p=dau;
    142.         while(p!=NULL)
    143.         {
    144.             cout<<"("<<p->khoa<<","<<p->giaTri<<")";
    145.             p=p->tiep;
    146.         }
    147.         cout<<endl;
    148.     }
    149. }

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

    typedef struct SieuDl // l nhỏ
    {
    struct SieuDl(KieuKhoa khoa,KieuGiaTri giaTri)
    {
    this->khoa=khoa;
    this->giaTri=giaTri;
    tiep=NULL;
    }
    KieuKhoa khoa;
    KieuGiaTri giaTri;
    struct SieuDL *tiep; // l lớn

    }SIEUDL;
    Ví phỏng đường đời bằng phẳng cả, anh hùng hào kiệt có hơn ai.
    Nguyễn Công Trứ

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

    Cam on ban nhieu
    Đúng là bất cẩn:
    Cho mình hỏi tiếp:
    error C2011: 'SieuDL' : 'struct' type redefinition
    'BangBam' : 'class' type redefinition

    Tại sao vậy các bạn?

  4. #4
    Ngày gia nhập
    06 2007
    Bài viết
    11

    file trên của bạn tên gì
    nếu đó là file .h thì có lẽ sẽ báo lỗi như bạn mô tả
    Ví phỏng đường đời bằng phẳng cả, anh hùng hào kiệt có hơn ai.
    Nguyễn Công Trứ

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

    Từ đầu đến #include<iostream.h>.. là file .h còn lại là file .cpp

  6. #6
    Ngày gia nhập
    06 2007
    Bài viết
    11

    Mặc định Lập trình C++ | Ép kiểu dữ liệu cấu trúc và class trong C++

    bạn nên thêm phần in đậm vào .h

    #ifndef _TEN_FILE_H
    #define _TEN_FILE_H

    //...nội dung file .h
    #endif
    Ví phỏng đường đời bằng phẳng cả, anh hùng hào kiệt có hơn ai.
    Nguyễn Công Trứ

  7. #7
    Ngày gia nhập
    06 2007
    Bài viết
    7

    Cam on nhieu ban oi!!!!!!giờ lại xay ra lổi này:
    error LNK2005: "public: __thiscall BangBam::BangBam(int)" (??0BangBam@@QAE@H@Z) already defined in bangBam.obj
    main.obj : error LNK2005: "public: __thiscall BangBam::~BangBam(void)" (??1BangBam@@QAE@XZ) already defined in bangBam.obj
    main.obj : error LNK2005: "public: void __thiscall BangBam::them(int,int)" (?them@BangBam@@QAEXHH@Z) already defined in bangBam.obj
    main.obj : error LNK2005: "int __cdecl hambam(int)" (?hambam@@YAHH@Z) already defined in bangBam.obj
    main.obj : error LNK2005: "public: struct SieuDL * __thiscall BangBam::tim(int)" (?tim@BangBam@@QAEPAUSieuDL@@H@Z) already defined in bangBam.obj
    main.obj : error LNK2005: "public: void __thiscall BangBam::xoa(int)" (?xoa@BangBam@@QAEXH@Z) already defined in bangBam.obj
    main.obj : error LNK2005: "public: void __thiscall BangBam::huyBangBam(void)" (?huyBangBam@BangBam@@QAEXXZ) already defined in bangBam.obj
    main.obj : error LNK2005: "public: void __thiscall BangBam::duyetBangBam(void)" (?duyetBangBam@BangBam@@QAEXXZ) already defined in bangBam.obj
    bangBam.obj : error LNK2001: unresolved external symbol "private: int __thiscall BangBam::hamBam(int)" (?hamBam@BangBam@@AAEHH@Z)
    main.obj : error LNK2001: unresolved external symbol "private: int __thiscall BangBam::hamBam(int)" (?hamBam@BangBam@@AAEHH@Z)
    Debug/bangBam.exe : fatal error LNK1120: 1 unresolved externals

  8. #8
    Ngày gia nhập
    06 2007
    Bài viết
    11

    có phải bạn đã viết như thế này
    #include bangBam.cpp
    ở file nào đó trong project của bạn, có lẽ trong file main.cpp
    phát biểu đó sẽ dẫn đến lỗi trên
    Ví phỏng đường đời bằng phẳng cả, anh hùng hào kiệt có hơn ai.
    Nguyễn Công Trứ

  9. #9
    Ngày gia nhập
    06 2007
    Bài viết
    11

    ban xem PM nhe
    Ví phỏng đường đời bằng phẳng cả, anh hùng hào kiệt có hơn ai.
    Nguyễn Công Trứ

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

  1. Chỉnh sửa cấu trúc class library
    Gửi bởi Riku trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 22-04-2013, 10:12 PM
  2. Điểm khác nhau giữa Cấu trúc và class trong CSharp
    Gửi bởi cSharp trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 31-07-2011, 12:51 AM
  3. Cấu trúc các class của MFC
    Gửi bởi nocreate trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 24-06-2010, 08:38 AM
  4. Cấu trúc một chương trình class
    Gửi bởi chankx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 07-04-2009, 01:27 PM
  5. những thắc mắc về cấu trúc lệnh trong class
    Gửi bởi hardlovebee21 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 04-04-2009, 11:07 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