相关疑难解决方法(0)

为什么有注入的类名?

最近,我看到了一个奇怪的C++特性:注入类名.

class X { };
X x1;
class X::X x2; // class X::X is equal to X
class X::X::X x3; // ...and so on...
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚为什么这个功能是必要的.有没有需要此功能的练习?

我听说旧C++中不存在这个功能.然后,什么时候介绍?C++ 03?C++ 11?

c++

142
推荐指数
1
解决办法
6321
查看次数

范围解析运算符被使用两次

namespace libzerocoin {

//Commitment class
Commitment::Commitment::Commitment(const IntegerGroupParams* p,
                               const Bignum& value): params(p), contents(value) {
this->randomness = Bignum::randBignum(params->groupOrder);
this->commitmentValue = (params->g.pow_mod(this->contents, params->modulus).mul_mod(
                         params->h.pow_mod(this->randomness, params->modulus), params->modulus));
}
Run Code Online (Sandbox Code Playgroud)

我刚刚在GitHub上遇到过这个函数定义.

我假设第二个和第三个"承诺"引用了类名和构造函数,但我无法弄清楚第一个的含义.我确信它没有引用命名空间,因为该名称不同.我已经看到范例解析运算符在示例中被使用了两次,但那些引用了嵌套的命名空间.

c++ constructor namespaces class name-lookup

10
推荐指数
1
解决办法
520
查看次数

标签 统计

c++ ×2

class ×1

constructor ×1

name-lookup ×1

namespaces ×1