为什么调试器总是跳过此程序中的一行?
Why does the debugger always skip one line in this program?
我正在编写一个名为Matrix
的矩阵的模板类,我像这样重写默认构造函数:
template<typename _Tp, size_t m, size_t n> inline
Matrix<_Tp, m, n>::Matrix()
{
for(size_t i = 0; i != m*n; ++i) val[i] = _Tp(0);
}
在我的测试文件中,我写了这个:
SC::Matrix<double, 3, 3> Mat();
当我构建程序时,所有这些都很好。但是当我运行测试程序时,我总是得到错误的结果。
当我试图找到原因时,我发现调试器总是跳过Mat
的定义;起初我认为可能是因为我在构建此程序后修改了文件,所以我删除了所有构建结果(由 cmake 自动生成(并重建它。但没用,问题仍然存在。
有人可以帮助我找到原因吗?我是否为此问题提供了足够的信息?
你说"...调试器总是跳过...",所以我假设,您尝试创建一个类型为SC::Matrix<double, 3, 3>
的变量 Mat 并查看它是如何默认初始化的。
如果这是真的,那么
SC::Matrix<double, 3, 3> Mat();
声明一个名为Mat
的函数,该函数不带参数并返回SC::Matrix<double, 3, 3>
。当然,您不能"调试"函数声明。 如果要创建默认的初始化变量,请写入:
SC::Matrix<double, 3, 3> Mat{};
或者只是
SC::Matrix<double, 3, 3> Mat;
相关文章:
- 为什么如果我添加这一行,我的程序会不断询问值
- 为什么调试器总是跳过此程序中的一行?
- 如何在每次运行程序时写入文件的下一行?
- 课堂上的一行,使整个应用程序坏了. 0xC000005错误
- 我的程序在另一行中读取名字然后是姓氏,而我需要它一起读取名字和姓氏
- 以下递归程序的最后一行是如何工作的
- 如何在应用程序进行大量printf时,在固定输入的终端中设置最后一行
- 为什么我的程序在这一行崩溃
- 程序一次运行每一行
- Qt程序读取文本只看到多行文件中的一行
- 即使将返回 0 作为 main 的第一行,程序也无法退出C++
- 引用变量在下一行程序执行后显示未找到的行为
- 程序只读取第一行!C++
- 为什么我的程序写入.dat文件中的同一行
- CIN / Getline在控制台应用程序中的一行中
- 我可以使用cocos2d-x调度程序来延迟一行代码吗
- 我似乎无法在qt创建器中打印几行数据。程序覆盖除最后一行之外的所有输出
- Boost.MultiArray的一行初始化程序
- 如何让程序读取一行?c++
- 程序只在文本文件中输入一行