c++ - 编码风格 - 输入验证

标签 c++ coding-style

哪个是验证传递给函数的输入的最佳方式,即在进行某些事情之前验证所有输入

class A;
void fun(A* p)
{
  if(! p)
  {
    return;
  }

 B* pB = p->getB();
  if(! pB)
  {
    return;
  }

.......

}

还是这样写:

void fun(A* p)
{
  if(p)
  {
    B* pB = p->getB();
    if(pB)
    {
      .....
    }
  }
}

我问这个是因为,如果我使用第一种风格,那么我的代码中会有多个 return 语句,很多人说这是不好的(不知道为什么),如果我使用第二种风格,那么会有我的代码中的嵌套级别太多。

最佳答案

第一种方式比第二种方式更容易阅读并且(按深度)不那么复杂。在第二个中,复杂性和深度随着参数数量的增加而增加。但在第一个示例中,它只是线性的。

关于c++ - 编码风格 - 输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/474063/

相关文章:

c++ - `std::move` 构造函数中的 Eigen 对象?

c++ - SFINAE 在类型和非类型模板参数的情况下工作方式不同

Python 尝试 block 大小

Javascript:创建看起来像默认函数的自定义函数

windows - 我应该在批处理文件中使用哪种注释样式?

c++ - lambda 函数 c++ 按值捕获重置其值,为什么?

c++ - 在 C++ 或 C 中寻找基于磁盘的 B+ 树实现

c++ - 安全地返回指向本地对象成员的指针

objective-c - ivars 和属性应该在头文件还是实现文件中声明?

c++ - 根据一组编码标准检查 C/C++ 源代码的免费工具?