class A {
public:
int x;
};
A a[3];
//либо динамически:
//A* a = new A[3];
//(важно не забыть delete[] a;)
a[0].x = 1;
a[1].x = 2;
a[2].x = 3;
std::cout << a[0].x << a[1].x << a[2].x;
Переходим к следующему подвопросу. В Delphi можно было провернуть такую штуку:
type
A = class
end;
A1 = class(A)
end;
A2 = class(A)
end;
classA = class of A;
var
classArray : array[1..2] of classA;
objArray : array[1..2] of A;
i : Integer;
begin
classArray[1] := A1;
classArray[2] := A2;
for i := 1 to 2 do
begin
objArray[i] := classArray[i].Create();
ShowMessage(objArray[i].ClassName);
end;
end;
То есть действительно реализовать некий массив классов (можно ли его так назвать?). В C++ я был не очень уверен и погуглил "массив классов". Можно сделать похожий механизм через порождающие фабрики. Но так как это не массив, в обычном понимании, и это только 2-й вопрос, то ответ - "нельзя".
А еще поиск ответа показал, что очень многие спрашивают про "массив классов" имея в виду "массив объектов". Значит первый вопрос (чем обличается класс от объекта?) вполне актуален :)
Комментариев нет:
Отправить комментарий
Можно использовать теги <b>, <i>