我有一個簡單的類,並且具有指向第一類中的屬性另一個類:指點類屬性與載體另一個類
#include <iostream>
#include <vector>
using namespace std;
class first{
public:
int var1;
};
class second{
public:
first* classvar;
};
然後,我已經得到了是應該的空隙將「classvar」指向「first」類的預期迭代。
void fill(vector<second>& sec, vector<first>& fir){
sec[0].classvar = &fir[0];
}
最後main()。創建並填充「first」類的向量,創建「second」向量,並運行fill函數。
int main(){
vector<first> a(1);
a[0].var1 = 1000;
vector<second> b(1);
fill(b, a);
cout << b[0].classvar.var1 << '\n';
system("PAUSE");
return 0;
}
這給了我下面的錯誤:
1>c:\...\main.cpp(29) : error C2228: left of '.var1' must have class/struct/union
1> type is 'first *'
而且我想不通爲什麼它會讀取「classvar」作爲整個矢量而不只是單個實例。我應該這樣做
cout << b[0].classvar[0].var1 << '\n';
它完美地讀取。
任何人都可以找出問題嗎? 預先感謝