题目有问题:(代码编译
不过,是错误的)
1
MyClass
()
(int
d)
{data=d;}
这行如果改为:
MyClass
(int
d)
{data=d;}
那么正确的答案是D;(其中,X[1]是NULL。实质是指针初始化)
2
如果改为:
MyClass
operator()(int
d)
{
data
=d;
return
*this;
},正确答案是A;
如果不改,全错。
两个要点:
1
类对象数组的初始化(不是指针初始化)。
初始化就是用{},假如不写,就用缺省构造函数(无参数构造函数)。
大括号中间写构造函数形式即可:如{MyClass(2),MyClass(3)}
2
MyClass
()
(int
d)
{data=d;}不是构造函数,这个写法其实有问题,既有点象构造函数(多了个括号)
MyClass
(int
d)
{
data
=d;}
有有点象仿函数(但是差的不是一点半点):
MyClass
operator()(int
d)
{
data
=d;
return
*this;
}
总结:
题目有点问题。
温馨提示:答案为网友推荐,仅供参考