c++ - 如何在 C++ 中的赋值中命名类标识符?
问题描述
从这里开始:C++中'struct'和'typedef struct'的区别?,我发现class
如果存在名称冲突,我需要标识符(例如,如果类名与函数名相同):
#include <iostream>
using namespace std;
class foo
{
public:
foo() {}
operator char const *() const
{
return "class";
}
};
char const *foo()
{
return "function\n";
}
int main()
{
char const *p;
p = class foo(); //this gets error
cout << p << '\n';
return 0;
}
输出:
error: expected primary-expression before ‘class’
p = class foo();
这里的主要表达是什么,我如何识别类而不是函数?我希望它打印class
而不是function
. 怎么做?
解决方案
可能的解决方案之一:
using bar = class foo;
p = bar();
推荐阅读
- node.js - nodejs / mongoDb:在一个请求中更新许多字段
- amazon-web-services - S3 拒绝访问带有非编码查询参数的 URL
- r - 模型时间重采样面板日期 - 可视化
- angular - 角度 11.2.9 routerLink 不会重新初始化相同的组件
- python - 传递给 sqlalchemy 的 create_engine 的正确 SSL 参数是什么?
- r - 根据列名向量选择正确的列
- java - 获取数据库值 CODENAME ONE
- node.js - Node.js 异步函数不起作用
- macos - 如何在文件提供程序中的 macOS 上实现“始终保留在此设备上”?
- javascript - 在单独的文件夹中分离续集模型并将所有模型连接在一起