范围解析运算符语义

guitar_geek

1)当我们也可以内联定义它时,在以下情况下,作用域解析运算符有什么用?

class Box
{
   public:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
      double getVolume(void);// Returns box volume
};

double Box::getVolume(void)
{
    return length * breadth * height;
}

2)此外,该行的语义double Box::getVolume(void)令人困惑。为什么不能呢double getVolume(void)::Box这背后有一些历史吗?

托马斯·马修斯

1)当我们也可以内联定义它时,在以下情况下,作用域解析运算符有什么用?

在您的示例中,在类中定义方法时不需要范围解析运算符:

class Box
{
   public:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
      double getVolume(void)// Returns box volume
      {
         return length * breadth * height;
      }
};

但是,当在类之外定义函数时,程序员需要一种将函数与给定类关联的方法。此方法需要区分类方法和独立函数。因此范围解析算子。

2)此外,双线Box :: getVolume(void)的语义令人困惑。为什么不能呢:double getVolume(void):: Box。这背后有一些历史吗?

实际上,当您考虑独立函数的声明语法时,该语法不会引起混淆:

return_type function_name(function_parameters);  

包含的名称空间或类与函数名称相关联,因此语法为:

return type class_name::function_name(function_parameters);  

如果您以不同的方式排列各部分,则定义和声明可能会减少混乱:

double
Box ::
getVolume(void)
{
  return height * length * depth;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

isalnum的范围解析运算符

来自分类Dev

对象的范围解析运算符

来自分类Dev

范围解析运算符angularjs

来自分类Dev

通过范围解析运算符调用非静态方法

来自分类Dev

范围解析,而不是。模板类参数的运算符

来自分类Dev

在Laravel中使用范围解析运算符

来自分类Dev

范围解析运算符之前/之后的空格

来自分类Dev

范围解析运算符,用于返回嵌套的类类型

来自分类Dev

无法理解范围解析运算符的使用

来自分类Dev

在Laravel中使用范围解析运算符

来自分类Dev

关于C ++中范围解析运算符的困惑

来自分类Dev

APL点运算符的语义?

来自分类Dev

PowerShell中的可变范围运算符

来自分类Dev

循环和范围运算符的基准

来自分类Dev

F#跳过范围运算符

来自分类Dev

为什么“ is”运算符的if范围比if更长?

来自分类Dev

C ++新的运算符范围

来自分类Dev

循环和范围运算符的基准

来自分类Dev

如何限制文字运算符的范围

来自分类Dev

是否有某种范围解析运算符可在类外获得名称

来自分类Dev

PHP范围解析运算符:由于第10行代码,此代码显示很多错误

来自分类Dev

STL-为什么将范围解析运算符用于迭代器

来自分类Dev

为什么我们将 ::(范围解析运算符)放在迭代器之前?

来自分类Dev

运算符优先级解析

来自分类Dev

在赋值运算符上解析错误

来自分类Dev

解析查询中的和运算符

来自分类Dev

使用正负范围处理范围运算符?

来自分类Dev

C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

来自分类Dev

C ++移动语义:为什么调用复制分配运算符=(&)而不是移动分配运算符=(&&)?

Related 相关文章

热门标签

归档