(4)-1次。這樣定義了壹個變量A,用4初始化A(可以知道AB類中至少定義了壹個成員,可以用構造函數初始化)。
B[3]-3次。這樣定義了壹個有三個元素的數組B,所以b[3]初始化了三個AB對象,所以調用了三次。
*p[2]-0次。這定義了壹個指針數組(2個元素的數組,數組的內容是指針)。雖然這定義了壹個數組,但是因為它的內容是壹個指針,而指針只是壹個地址(32位機器上的32位數字),它還沒有具體指向壹個對象,所以沒有調用構造函數。
下面是測試代碼:
#包含?& ltiostream & gt
使用?命名空間?std
靜電?int?s_count?=?0;
班級?AB?{
公共:
AB(int?i=0)?:?m(i)?{ s _ count++;}
~AB()?{;}
私人:
int?m;
};
int?main(int?argc,?夏爾?const?*argv[])
{
AB?答(4),?b[3],?* p[2];
cout?& lt& lt?s_count?& lt& lt?endl
}