2016-03-29 11 views
-3

İkili Bir Yığın C++ uygulamasında çalışıyorum, ancak bazı sorunlara başladım.C++: İkili Öbek

struct BinaryHeap heap(10); 

hata alıyorum:: Değişken eksik tip 'BinaryHeap yapısına bir' vardır main.cpp dosyasında

class binaryHeap { 

public: 

    // Constructor 
    binaryHeap(int _capacity) 
    { 
     // initializes the binary heap with a capacity, size, and space in memory 
     _size = 0; 
     _n = ceil(pow(2, log10(_capacity)/log10(2))); 
     _heap = new int[_n]; 
    } 

    ~binaryHeap(void) 
    { 
     delete[] _heap; 
    } 

/* Omitted: insert, remove, size, capacity functions 
    Not necessary to the issue I'm having */ 

private: 

    int _size; 
    int _capacity; 
    int _n; 
    int *_heap; 
}; 

Ben aşağıdaki satırı yazarken,: İşte benim kod snippet'idir var . Buna neden olan herhangi bir fikir var mı?

+0

Eğer C++ yapıyorsanız, bir C stili dizisi yerine 'std :: vector' kullanmak isteyebilirsiniz. Ayrıca 'binaryHeap' veya' BinaryHeap' mı? İkincisi daha geleneksel C++. – tadman

+1

Neden struct BinaryHeap yığınını kullanıyorsunuz (10); '? Neden sadece BinaryHeap yığınını (10) kullanarak değil ''? İkincisi, bir yazım hatası var. – orezvani

cevap

2

Bu bir yazım hatası sorunu olduğunu düşünüyorum. İkili yığın sınıfınız binaryHeap ise, main işlevinizde, derleyicinin POV'sinde tamamen farklı bir tür olan struct BinaryHeap heap(10); diyorsunuz.

+0

Vay, bu kadar basit olurdu, haha. Teşekkürler! – TyCharm