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-й вопрос, то ответ - "нельзя".
А еще поиск ответа показал, что очень многие спрашивают про "массив классов" имея в виду "массив объектов". Значит первый вопрос (чем обличается класс от объекта?) вполне актуален :)
 
 
 
 Сообщения
Сообщения
 
