Я пытаюсь понять, как я могу или почему я не могу получить доступ к члену этого класса. Сначала я покажу вам, что работает, чтобы вы знали, о чем я думаю, а затем я покажу вам, что я не могу сделать.
Что я могу сделать, так это: у меня есть класс с членом. Я создаю массив указателей этого класса и создаю из него НОВЫЕ части (через цикл), и все в порядке. Я также могу создать другой класс с аналогичным массивом и даже создать его НОВЫЕ экземпляры и инициализировать их, но когда я пытаюсь получить к ним доступ, у меня возникают проблемы.
Этот код почти работает нормально:
#include <iostream>
using namespace std;
class testClass{
public:
int number;
};
class testPoint{
public:
testClass testInstance;
testClass *testclassArray[5];
void makeArray();
void setToI();
};
void testPoint::makeArray(){
for (int i = 0; i < 5; i++){
testclassArray[i] = new testClass;
}
}
void testPoint::setToI(){
for (int i = 0; i < 5; i++){
(*testclassArray[i]).number = i;
}
}
int main(void){
testPoint firstTestPoint;
firstTestPoint.makeArray();
firstTestPoint.setToI();
// EXCEPT FOR THIS LINE this is where I have problems
cout << firstTestPoint.(*testclassArray[0]).number << endl;
return 0;
}
Я знаю, что это должно работать, потому что это работает
int main(void){
testPoint firstInstance;
firstInstance.testInstance.number = 3;
cout << firstInstance.testInstance.number << endl;
// and this works
return 0;
}
и это работает
int main(void){
testClass *testPointer[5];
for (int i = 0; i < 5; i++){
testPointer[i] = new testClass;
(*testPointer[i]).number = i;
}
cout << (*testPointer[0]).number << endl;
return 0;
}
так почему я не могу получить доступ к членам функции cout таким же образом?