1. 问题
-
在写了一个类后,用它创建对象时,发现该有的现象没有:

int main() { zzz::Data<int, int> d(); zzz::Data<int, char>d2(); zzz::vector<int> v(3, 5); //用来测试其他代码是否正常 cout << v << endl; return 0; }运行结果:

这是打印的对象v的内容,人家是正常的。 -
所以,打断点观察一下:

发现这个位置打不上断点,会直接跳走。
2. 解决
其实,问题是在对象创建那里:
zzz::Data<int, int> d();
zzz::Data<int, char>d2();
大家有看出问题吗?
-
这里不是进行了对象的创建,而是进行了函数的声明:

所以,看左边三行代码的格式,所以其实上面两个也根本不是在创建Data类型的对象,而是函数声明,如第一个就是在声明一个返回值是Data<int,int>,名字为d的,无参数的函数。 -
所以,我们对构造进行修改:
int main() { zzz::Data<int, int> d; zzz::Data<int, char>d2; zzz::vector<int> v(3, 5); cout << v << endl; return 0; }运行结果:

结果对了。
3. 总结

本文到这里就结束了,如果对您有帮助,希望得到您的一个赞!🌷
如有错漏,欢迎指正!😄

7886

被折叠的 条评论
为什么被折叠?



