我一直收到此错误,Google搜索似乎太模糊了,所以我将它交给您!我正在尝试创建一个包含Account对象的链接列表对象。
#include "Customer.h"
#include "LinkedList.h"
#include "Account.h"
#include "Mortgage.h"
#include "CurrentAcc.h"
#include "JuniorAcc.h"
#include "transaction.h"
#include <iostream>
#include <string>
using namespace std;
string name;
string address;
string telNo;
char gender;
string dateOfBirth;
list<Account> accList; // Error
list<Mortgage> mortList; //Error
我觉得我没有正确地宣布我的链接列表,但却想不出怎么做。
我感觉下一段代码是由于我的声明不好。
void Customer::openCurrentAccount(int numb, double bal, int cl, string type, double Interest){
Current acc(numb,bal,cl,type,Interest); //Error - Expression must have class type.
accList.add(acc);
}
这是我的Linked List类.h文件的创建。
#pragma once
#include <iostream>
using namespace std;
template <class T>
class node;
template <class T>
class list
{
public:
list() { head = tail = NULL; }
~list();
void add(T &obj);
T remove(int ID);
void print(ostream &out);
T search(int ID);
private:
node<T> *head, *tail;
};
template <class T>
class node
{ 上市: node(){next = NULL;} //私人的: T数据; 节点*下一个; };
template <class T>
list<T>::~list()
{
}
答案 0 :(得分:3)
您在全局命名空间中定义了自己的类list
,并在其标头中放置using namespace std;
以将整个标准库转储到全局命名空间中。这意味着您在全局命名空间中有两个名为list
的模板,这将导致歧义,从而导致编译错误。
你应该:
using namespace std;
放入源文件