то, что у вас есть, на самом деле довольно близко.проблема в том, что вам нужно заранее создать указатель и затем вызвать новый Class1 [n].Похоже, вашей проблеме нужно заранее выяснить, как объявить указатель.
Есть два варианта, о которых я могу подумать:
1) не беспокойтесь об объявлении двух разных типов указателей.,объявлять ОДИН тип указателя (в этом случае имеет смысл иметь это Class2 - поскольку Class1 можно рассматривать как «подмножество» Class1), а затем просто объявить любые неиспользуемые значения в Class2 некоторым указанным значениям, означающим, что они не используются.
2) Я даже не совсем уверен, правильна ли эта техника, но определенно есть что-то в этом роде, что сработает: объявить указатель типа Void *.вам также нужно будет определить ptr1 и ptr2, чтобы они указывали на типы Class1 и Class2 соответственно.вы захотите, чтобы указатель Void * действительно указывал на определяемый вами класс, а затем создал функцию для приведения этого указателя void * к типу ptr1 (указатель на тип Class1) или ptr (указатель на тип Class2).
это очень похоже на создание void * (указателя на тип void), а затем приведение его к целому числу, если в вашей ячейке памяти действительно есть целые числа.затем вы можете рассматривать это приведение как указатель на целое число.
наконец, вы говорите «указатель [2] .a = 1.0» и «указатель [4] .d = 10.0» в вашем примере.Вы создаете массив классов?если вы хотите, чтобы указатель указывал на один класс, то вы в конечном итоге будете использовать «pointer.a» и «pointer.d», верно?