c++ - 这是参数还是类型?
问题描述
在示例代码(如下)中,我想知道传递给类getSocialSecurityNumber
中的参数是什么Citizen
。为什么是(Passkey<Government>)
而不是(Passkey<Government> x)
。
它与类模板/仿函数有关吗?
#include <string>
#include <iostream>
using namespace std;
template <typename T>
class Passkey {
private:
friend T;
Passkey() {}
Passkey(const Passkey&) {}
Passkey& operator=(const Passkey&) = delete;
};
class Citizen {
public:
string getSocialSecurityNumber(Passkey<Government>) const { return _socialSecurityNumber; };
^^^^ (here)
private:
string _socialSecurityNumber;
};
class Government {
private:
void printCitizenInfo(const Citizen &citizen) const;
};
void Government::printCitizenInfo(const Citizen &citizen) const {
cout << "Citizen SSN: " << citizen.getSocialSecurityNumber(Passkey<Government>()) << endl;
}
解决方案
Passkey<Government>
是一种类型。参数显然没有使用,它没有名字。
推荐阅读
- python-3.x - 使用请求的 Python SSL 证书错误
- tensorflow - TypeError:_variable_v2_call() 在张量流版本 = 2.0.0 中得到了一个意外的关键字参数“初始化器”
- bash - 复制从特定字符开始的每行的最后一个数字并在该字符之后追加
- javascript - 上不了onupgrade需要调用,不管我改多少次版本号
- tablefilter - Tablefilter:如何在选择过滤器中设置“默认值”?
- python - Networkx 显然是在打乱颜色列表 python
- android - 仪表测试中的 Internet 访问
- python - 如何在具有多个表格的 .ASPX 网站上抓取表格?
- python - Python 时区:为什么 EST 时差一小时?(pytz / dateutil)
- kubernetes-ingress - 如何在gloo入口控制器中使用动态值路由请求