3

我正在尝试使用 g++ 4.2.1 编译以下代码并收到以下错误

代码:

#include <iostream>
#include <queue>

using namespace std;

int main (int argc, char * const argv[])
{    
    queue<int> myqueue();
    for(int i = 0; i < 10; i++)
        myqueue.push(i);

    cout << myqueue.size();

    return 0;
}

错误:

main.cpp: In function ‘int main(int, char* const*)’:
main.cpp:10: error: request for member ‘push’ in ‘myqueue’, which is of non-class type ‘std::queue<int, std::deque<int, std::allocator<int> > > ()()’
main.cpp:12: error: request for member ‘size’ in ‘myqueue’, which is of non-class type ‘std::queue<int, std::deque<int, std::allocator<int> > > ()()’

关于为什么的任何想法?我在 Eclipse、X-Code 和终端中进行了尝试。

4

1 回答 1

10

C++ FAQ Lite § 10.2

List x;和有什么区别List x();吗?

很大的不同!

假设这List是某个类的名称。然后函数f()声明一个List名为的本地对象x

void f()
{
  List x;     // Local object named x (of class List)
  ...
}

但是 functiong()声明了一个调用的函数,该函数x()返回 a List

void g()
{
  List x();   // Function named x (that returns a List)
  ...
}

换成你就好了queue<int> myqueue();queue<int> myqueue;

于 2010-01-19T03:33:08.033 回答