0
У меня есть следующий код и он не компилируется, когда я создаю объект с пустым конструктором, как так:Создание объекта с пустым конструктором
PriorityQueue pq1();
pq1.insert(3); // doesn't compile
Но это скомпилировать, как это:
PriorityQueue pq2 = PriorityQueue();
pq2.insert(3); // compiles
Почему это происходит?
PriorityQueue.h
class PriorityQueue
{
public:
PriorityQueue(); // Create the heap
~PriorityQueue(); // Destroy the heap
}
PriorityQueue.cpp
#include "PriorityQueue.h"
PriorityQueue::PriorityQueue()
{
}
main.cpp
#include "PriorityQueue.h"
int main()
{
PriorityQueue pq1();
pq1.insert(3); // doesn't compile
PriorityQueue pq2 = PriorityQueue();
pq2.insert(3); // compiles
}
'PriorityQueue PQ1()' должен быть 'PriorityQueue PQ1,' иначе это объявление функции –
@EdHeal о мальчик ... – dimitris93