C++常见错误解析2.0

cpp 复制代码
int cur = 0,dest = -1;
for(dest = -1;dest <= arr.size() - 1;dest++)
{
  ;
}
cout << dest;

分析以上代码有什么问题。

标准输出:-1

答案:arr.size() - 1默认返回size_t类型 为无符号整型dest为有符号整型 隐式转换提升高范围导致dest变得巨大。

奇偶分割left与right分割

使用/2多次分裂两区间 可能造成的问题:

int mid = (left + right)/2;

//如果begin,mid-1 mid, end 假如mid与end一者为奇数另一者为偶数分割 在第二次分割的子区间的第二区间仍保持原样

按位符的优先级

一定加上"()"

cpp 复制代码
for(auto i: nums)
{
     if((i & h) == 0)
         type1 += i;
     else
         type2 += i;
}

此例中如果不加编译错误

空类插入的错误

// type1.insert(type1.begin() + i,numsi); //type1初为无法访问

// type1.insert(nums + i,numsi); //nums+i虽然是指针类型但不是迭代器

//type10 = ...... ; //为空无法访问

按位异或找单数

自身与自身按位或一次会导致 破坏异或双结构。

静态局部变量的错误

静态局部变量只能在局部访问 如函数范围

数据段代码段

栈 堆 数据段(全局变量/静态变量) 代码段(只读常量/可执行代码)

在数组中一定注意分清楚左右! 二维数组中分清楚行列!

数据溢出!!!

如:int t = target - numsi - numsj;与设置了防溢出的:long t = (long)target - (long)numsi - (long)numsj;

template后有无" ; "?

无分号!!

指针的内存泄漏

cpp 复制代码
PNode pr = new Node;
pr = pnode;

为什么?new Node为pr分配了空间但是又改变了pr的方向导致原来的内存泄漏!!

我当时是怎么想的? 我要指定一个结构体指针使得其指向已有的特定位置 所有申请new Node 后改变方向。

以后应该怎么做? 了解到分配的意义是"空间"的存储new就是分配 不应改变方向 改变方向内存泄漏

正确的方式:PNode newnode = pnode; //为什么可以?

栈的top对 空栈 使用报错!

堆的pop是 堆顶 元素

继承多态下构造函数、隐式转换产生的调用目标混乱问题

多态

静态成员函数与具体对象无关,属于整个类,核心关键是静态函数无this指针调用时无法不可以通过类名直接调用,无this就代表无法实现虚表。

编译时多态是早期绑定,主要通过重载实现。

模板属于编译时多态。

"重定义"指"隐藏"

A* pa = (A*)new B; // pa 的静态类型是 A*,实际指向 B 对象

类有几个拥有虚函数的父类,就会有几张虚表,自身子类不会产生多余的虚表。

virtual关键字只在声明时加上,在类外实现时不能加。

友元函数本身不是类的成员函数,但可以访问类的私有和保护成员。


vector<string> words;下

int len = sizeof(words0);//区别于sizeof(arr) 此处计算的是string类对象的大小 28/32取决于编译器

C++11中已经去除了auto声明自动类型变量的功能,只可以用来进行变量类型推导。

列表初始化在初始化时,如果出现类型截断,是会报警告或者错误的。

override只能修饰子类的虚函数

相关推荐
dongf20192 分钟前
R语言KNN算法
算法·数据分析·r语言
花大师10 分钟前
基于深度学习的鼠标轨迹真实性检测系统
后端
原来是猿10 分钟前
深入理解 C++ unordered_map 与 unordered_set
开发语言·c++
满天星830357711 分钟前
【Qt】信号和槽 (一)(概述和基本使用)
开发语言·c++·qt
努力的章鱼bro14 分钟前
CUDA编程模型
c++·cuda
l1t20 分钟前
DeepSeek总结的 waddler,一个 Go 语言编写的从 YAML 文件运行的 ETL 管道
开发语言·golang·etl
小O的算法实验室23 分钟前
2025年IEEE TASE,基于双层耦合平均场博弈的大规模智能体集成任务分配与轨迹规划
人工智能·算法·机器学习
zhangrelay25 分钟前
后智能时代智能体推演预测娱乐文-节选-
笔记·学习·娱乐
小江的记录本28 分钟前
【Spring全家桶】Spring Cloud 2023.0.x:微服务核心理论、CAP/BASE定理(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·spring·spring cloud·微服务·面试
8Qi828 分钟前
LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅
算法·leetcode·二叉树·动态规划