千家信息网

C++怎么避免无意中编写非通用代码

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"C++怎么避免无意中编写非通用代码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Re
千家信息网最后更新 2026年11月03日C++怎么避免无意中编写非通用代码

本篇内容介绍了"C++怎么避免无意中编写非通用代码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Reason(原因)

Generality. Reusability. Don't gratuitously commit to details; use the most general facilities available.

通用性。重用性。不要无故陷入细节。使用可用的,更加通用的功能。

Example(示例)

Use != instead of < to compare iterators; != works for more objects because it doesn't rely on ordering.

使用!=而不是<比较迭代器;由于不依赖有序性,!=适用于更多对象。

for (auto i = first; i < last; ++i) {   // less generic
// ...
}

for (auto i = first; i != last; ++i) { // good; more generic
// ...
}

Of course, range-for is better still where it does what you want.

当然,如果确实是你想要的,范围for语句可能是更好的选择。

Example(示例)

Use the least-derived class that has the functionality you need.

使用包含你需要功能的最少继承类。

class Base {
public:
Bar f();
Bar g();
};

class Derived1 : public Base {
public:
Bar h();
};

class Derived2 : public Base {
public:
Bar j();
};

// bad, unless there is a specific reason for limiting to Derived1 objects only
void my_func(Derived1& param)
{
use(param.f());
use(param.g());
}

// good, uses only Base interface so only commit to that
void my_func(Base& param)
{
use(param.f());
use(param.g());
}
Enforcement(实施建议)
  • Flag comparison of iterators using < instead of !=.

    标记使用<而不是!=进行迭代器比较的情况。

  • Flag x.size() == 0 when x.empty() or x.is_empty() is available. Emptiness works for more containers than size(), because some containers don't know their size or are conceptually of unbounded size.

    如果x.empty()或者x.is_empty()可用,标记使用x.size()==0的代码。由于有些容器不知道自己的大小或者概念上是无限大的,相比size(),空判断可以用于更多的容器。

  • Flag functions that take a pointer or reference to a more-derived type but only use functions declared in a base type.

    标记函数获取派生类的指针或引用却只使用到基类函数的情况。

"C++怎么避免无意中编写非通用代码"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

更多 代码 情况 标记 C++ 内容 函数 功能 容器 知识 示例 迭代 实用 有序 学有所成 接下来 原因 困境 大小 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 有格互联网科技 亿人帮互联网科技有限公司 广州万易互联网科技有限公司 互联网科技工作委员会副主任毛军 美国互联网科技巨头监管 互联网与科技发展 互联网公司 科技公司 互联网金融科技平台 互联网女皇 腾讯科技 哈尔滨新华互联网科技 太原新华互联网科技学校怎么样 银川新华互联网科技学校地址 科技互联网的估值 中国的互联网科技企业的崛起 华服互联网科技官网 知域互联网科技有限公司大骗子 工业互联网科技成果转化 上海乐五互联网科技有限公司 容联科技互联网电商 互联网科技园 科技平台互联网 开启互联网科技时代小说 互联网科技寓意 河南猎农互联网科技有限公司 注册互联网科技公司经营范围大全 国大互联网教育科技有限公司工作 城市宝互联网科技有限公司 瑞安市蟠桃会互联网科技有限公司 前海云享互联网科技
0