无法访问功能

时间:2013-06-25 16:31:31

标签: c++ class oop object

我为下面给出了二进制堆的程序 -

       #include<iostream>
     using namespace std;
        /**
         * Construct the binary heap.
         * capacity is the capacity of the binary heap.
         */

class BinaryHeap
        {

           private:
            int   currentSize;  // Number of elements in heap
            int array[];        // The heap array

            void buildHeap( );
            void percolateDown( int hole );
           public:
            bool isEmpty( ) const;
            bool isFull( ) const;
            int findmini( ) const;

            void insert( int x );
            void deleteMin( );
            void deleteMin( int minItem );
            void makeEmpty( );



       public :
       BinaryHeap(  )
        {
         currentSize = 0;
        }
      BinaryHeap( int capacity )
        {
          array[capacity + 1];
         currentSize = 0;
        }
};
int main()
{
     int resp, ch, choice;
     int n, i;
     cout << "enter the size of heap" << endl;
     cin >> n;
    BinaryHeap b(int n);
   cout << "enter the item " << endl;
      cin >> ch;
    b.insert( int ch);


return 0;
}

编译时会出错

请求'b'中的成员'insert',它是非类型的'BinaryHeap(int)'
和 预期在'int'之前的primary-expression

为什么会发生这种情况?如何解决?

2 个答案:

答案 0 :(得分:5)

intBinaryHeap b(int n);移除b.insert( int ch);,您就可以了。

调用函数时,不应指定调用它的变量的数据类型。

答案 1 :(得分:1)

尝试更改此

b.insert( int ch);

到此:

b.insert(ch);