:: 在函数调用前是什么意思?

yyzr
I2CDevice::I2CDevice(unsigned int bus, unsigned int device) {
    this->file=-1;
    this->bus = bus;
    this->device = device;
    this->open();
}

int I2CDevice::open(){
   string name;
   if(this->bus==0) name = BBB_I2C_0;
   else name = BBB_I2C_1;

   if((this->file=::open(name.c_str(), O_RDWR)) < 0){
      perror("I2C: failed to open the bus\n");
      return 1;
   }

   if(ioctl(this->file, I2C_SLAVE, this->device) < 0){
      perror("I2C: Failed to connect to the device\n");
      return 1;
   }

   return 0;
}

以上是做Linux I2C接口的代码的一部分,我的问题是:

this->file=::open(name.c_str(), O_RDWR)

我认为这是尝试使用 open() 函数为文件描述符 this->file 分配一个值。但是为什么有一个“::”符号?为什么不只是“打开()”。

赞山猫

那就是 C++ 名称解析。::运营商分离的命名空间。当它开始一个名称时,它是对顶级全局命名空间的显式引用。它在这里的使用保证它引用的是open由 C 库声明函数,而不是任何open碰巧在类、当前命名空间或任何using namespace声明中函数

在这个特定的例子中,::open是必需的,因为它在一个open类函数中。简单地调用open这里会导致名称解析错误,因为类中有一个open但没有匹配的覆盖。如果参数确实匹配,这将是一个递归调用,这不是您想要的。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用函数时(_)是什么意思?

来自分类Dev

在MATLAB中的函数调用括号内是什么意思?

来自分类Dev

在C语言中调用函数时\是什么意思?

来自分类Dev

自变量在函数调用中是什么意思?

来自分类Dev

调用FindFirstFile时,“ <”是什么意思?

来自分类Dev

全局format()函数是什么意思?

来自分类Dev

返回函数*(){...}是什么意思?

来自分类Dev

“ if(<函数名称>)”是什么意思?

来自分类Dev

/ *:* * /内部函数参数是什么意思?

来自分类Dev

函数的属性是什么意思?

来自分类Dev

这个函数签名是什么意思?

来自分类Dev

函数末尾的 && 是什么意思

来自分类Dev

“使用常规函数'this'表示调用该函数的对象”是什么意思?

来自分类Dev

在Python中“调用”一个函数是什么意思?

来自分类Dev

Dart语言中“未解析的对超级构造函数的隐式调用”是什么意思?

来自分类Dev

在dart / flutter中调用函数时传递下划线_“ _”(_)是什么意思?

来自分类Dev

在函数调用之前,感叹号是什么意思?

来自分类Dev

“在函数调用之间保留寄存器”是什么意思?

来自分类Dev

调用Phonegap / Cordova`transaction`方法时,“ tx”在回调函数中是什么意思?

来自分类Dev

在Swift中调用函数时,每个部分是什么意思?

来自分类Dev

Native Starter Kit中函数调用后的冒号是什么意思

来自分类Dev

!<是什么意思?

来自分类Dev

$ @是什么意思?

来自分类Dev

`?:`是什么意思?

来自分类Dev

$($(this))是什么意思?

来自分类Dev

“ ++ a”是什么意思?

来自分类Dev

| =是什么意思

来自分类Dev

〜/`是什么意思?

来自分类Dev

!<是什么意思?

Related 相关文章

热门标签

归档