这是变量还是函数

时间:2011-12-31 06:03:59

标签: c++ syntax declaration

我只是通过谷歌(通过谷歌搜索代码搜索)查看非本地均值算法的实现,并遇到了这个函数镜像。

template<typename T,typename U,bool N>
inline int
boundaryExpansion::helperBase<T,U,N>::mirror(const int src,
                                               const int size,
                                               const int last) const {
  const int32 alpha(src%size);
  if (alpha>=0) {
    return (((src/size) & 0x00000001) != 0) ? last-alpha : alpha;
  }
  return (((src/size) & 0x00000001) == 0) ? -alpha-1 : size+alpha;
}

我感兴趣的是这个

const int32 alpha(src%size);

现在阿尔法在这里是什么?一个函数还是一个变量?这个语法意味着什么?这是变量声明吗?

2 个答案:

答案 0 :(得分:4)

这是一个变量声明。表格声明:

type variablename = value;

基本上相当于:

type variablename(value);

无论type是什么,都是这种情况 - 无论是用户定义的类还是内置类型。请注意,反之并非总是如此 - =语法要求存在可访问的复制构造函数。

出于类似的原因,您可以使用构造函数语法来转换算术类型,如:x = int(42.0);

答案 1 :(得分:3)

这是一个变量声明,它等同于:

const int32 alpha = src%size;