我有一個結構,稱爲PERSONS
,然後我定義了一個類型CTypedPtrArray<CPtrArray, PERSONS*> PersonsTable;
將數據添加到CARRAY給出錯誤「不能訪問類中聲明私有成員‘CObject的’」
struct Persons { ... };
typedef CTypedPtrArray<CPtrArray, PERSONS*> PersonsTable;
稍後在代碼中我儘量讓一個PersonTable
CArray
:
void CArrayTesting()
{
CArray<PersonsTable, PersonsTable> oCArr;
oCArr.SetSize(3);
PersonsTable perTableA;
PersonsTable perTableB;
PersonsTable perTableC;
for (int i = 0; i < 10; i++)
{
if (i < 3) addPerson(perTableA, i);
else if (i < 8) addPerson(perTableB, i);
else addPerson(perTableC, i);
}
oCArr.Add(perTableA);
oCArr.Add(perTableB);
oCArr.Add(perTableC);
for (int nArrCnt = 0; nArrCnt < oCArr.GetSize(); nArrCnt++)
for (int i = 0; i < oCArr.ElementAt(nArrCnt).GetSize(); i++)
{
cout<<"Table "<< nArrCnt << " - " << oCArr.ElementAt(nArrCnt)[i]->nID << endl;
delete oCArr.ElementAt(nArrCnt)[i];
}
}
的addPerson()
功能將數據添加到PersonTable
。
但是,編譯過程中會導致錯誤:cannot access private member declared in class 'CObject
。該錯誤似乎與oCArr.Add()
有關,因爲它在刪除相關行時得到「固定」。
爲什麼錯誤出現?我該如何解決它? CArray是如何工作的?
'Persons'和'PERSONS'有什麼區別? – Yunnosch
錯誤消息是否告訴您,無法訪問類「CObject」的哪個私有成員? – IInspectable