首先,我想向大家保证,我提出这个问题只是出于好奇心。我的意思是,不要告诉我如果我需要这个东西,那么我的设计就有问题,因为在实际代码中我并不需要它。希望我已经说服了你们 :) 现在来看看问题:
对于大多数类型T,我们可以写成:
我尝试了这个:
对于大多数类型T,我们可以写成:
T* p = new T;
如果T是一个数组类型,会怎样呢?
int (*p)[3] = new ???; //pointer to array of 3 = new ???
我尝试了这个:
typedef int arr[3];
arr* p = new arr;
但这并不起作用。
有没有有效的语法可以实现这一点,还是在C ++中不可能?如果不可能,那么为什么?谢谢。
编辑:我猜我没有表述清楚。我希望能够在以下情况下使用它:
void f(int(&)[3]);
int (*p)[3] = new ???;
f(*p);
T* p = new T;
语法。 - Armen Tsirunyan