什么是算术溢出啊,要10个字

     int cnt = fullPathName.length();
    int i = fullPathName.lastIndexOf("/");
    QString str = fullPathName.right(cnt-i-1);

fullPathName是打开的文件地址名,为什么会报错说           
警告    C26451    算术溢出: 使用 4 字节值上的运算符 - ,然后将结果转换到 8 字节值。在调用运算符 - 之前将值强制转换为宽类型可避免溢出(io.2)。    

ullPathName.lastIndexOf("/")的返回值用long接收

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/1069397
  • 你也可以参考下这篇文章:嵌入式系统安全的10个致命错误
  • 除此之外, 这篇博客: 二阶段项目评审所有提问整理中的 10、面向对象比面向过程有什么优势 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    (1)面向对象和面向过程本来就是人类认知的过程。
    (2)易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护,面向过程可重用性差,数据安全性差,难以开发大型软件和图形界面的应用软件
    总结:面向对象更适合于需求不断变化的应用软件,而面向过程更适合需求稳定但要求质量和效率的底层软件


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^