我有結構化的,我解決不了,我想從一類到另一個類通過這個名單列表的問題,這是我的代碼:轉換結構列表C++傳遞一個列表,從一類到另一個
ClassA.h
#include <list>
class ClassA
{
public:
struct MyStruct
{
int a;
int b;
};
std::list<MyStruct> myList;
void fillList();
}
ClassA.ccp
#include "ClassA.h"
#include <fstream>
#include <iostream>
using namespace std;
void ClassA::fillList() {
MyStruct c;
c.a = 1;
c.b = 2;
myList.push_back(c);
}
ClassB.h
#include <list>
class ClassB
{
struct MyStruct
{
int a;
int b;
};
std::list<MyStruct> myListB;
public:
ClassB(std::list<MyStruct> l);
}
ClassB.ccp
#include "ClassB.h"
#include <fstream>
#include <iostream>
using namespace std;
ClassB::ClassB(std::list<MyStruct> l)
{
myListB = l;
}
main.ccp
#include <iostream>
#include "ClassA.h"
#include "ClassB.h"
using namespace std;
int main()
{
ClassA a;
a.fillList();
ClassB(a.myList); //I receive the error here
}
我收到錯誤的位置我這裏上面發表評論,誤差爲no matching conversion for functional-style cast from'std::list<MyStruct>' to ClassB
,我怎麼錯了?我怎麼能通過這兩個班級之間的名單?請幫忙!
編輯: 我一樣a.lasram在回答暗示所以現在我有這樣的:
#include <list>
#include "ClassA.h" //i add this beacuse ask me and now i have a new error
class ClassB
{
typedef ClassA::MyStruct MyStruct;
std::list<MyStruct> myListB;
public:
ClassB(std::list<MyStruct> l);
};
此編輯後,舊的錯誤是解決了,但這裏存在新的:
ClassA.h
#include <list>
class ClassA //<-- here the error is: Redefinition of ClassA
{....
....
}
我怎麼能解決?請幫助...
編輯2: 我解決了第二個錯誤與此:
#ifndef __Terzo_Progetto__ClassA__
#define __Terzo_Progetto__ClassA__
#include <list>
class ClassA
{...
}
#endif
不用謝了!現在我已經這樣做了... – Piero