我在下面的標題中遇到了構造函數簽名的問題。編譯器給我的消息:前「*」令牌預期「)」錯誤:'*'標記之前的預期')'
誰能告訴我,我會在這裏失去了:
錯誤?
#ifndef PRIORITYQUEUE_H
#define PRIORITYQUEUE_H
#include <iostream>
#include <cstdlib> //We'll need to use srand() and rand() as well as clock()
#include <ctime>
#include <vector>
#include <list>
#include "Graph.h" //header for Graph class
using namespace std;
class PriorityQueue
{
public:
PriorityQueue(Graph*):infiniteDist(9999);
void set_previous_node(int, int);
int get_node_value(int);
void set_node_value(int, int); //Change the node value of an element
void markVisited(int);
bool contains(int); //Does the queue contain a particular vertex?
void insertIntoQueue(int);
int top(); //pick an unvisited node with the shortest distance.
int queueSize();
void print();
private:
class vertexNode {
public:
int nodeNum;
int nodeValue;
int previousNode; //previous node visited with shortest distance from source
bool wasVisited;
};
vector<vertexNode> nodeValues;
const int infiniteDist; //value to represent infinite distance
int nodeQuantity;
};
#endif // PRIORITYQUEUE_H
的實際構造函數用作:
PriorityQueue::PriorityQueue(Graph* graph):infiniteDist(9999)
{
...
}
感謝您的回答!我沒有意識到這一慣例,並將在未來更仔細地遵循它。不幸的是,相同的「預期」)'*'符號之前'仍然出現錯誤,並且出現在同一行。我能擺脫它併成功編譯我的代碼的唯一方法是徹底取消頭,並將所有內容包含在一個cpp文件中。 –
鑑於此錯誤,似乎編譯器無法識別'Graph'類。在你的代碼中,我無法弄清楚爲什麼,但是你可能還沒有真正定義過'Graph',或者'Graph.h'包含另一個'#include'到'PriorityQueue.h',用於例。 – Yellow