c++ - 如何在C++中的赋值中命名类标识符?

标签 c++ class identifier

从这里:Difference between 'struct' and 'typedef struct' in C++?,如果发现名称冲突(例如,如果类名与函数名相同),我发现我需要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();

关于c++ - 如何在C++中的赋值中命名类标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63425035/

相关文章:

c++ - 引用双指针,值是多少?

c++ - 奇怪的错误 "multiple definition of ` xxx`“编译 C++ 项目时

Java-嵌套类的正确使用?

c++ - 使用类成员的C++函数回调并在main中运行它

c++ - 将动态结构数组复制到另一个 C++

c++ - 使用 openssl 中的公钥验证数字签名

php - 什么时候方法应该是静态的? PHP

C++ 错误代码 C2065 : '<class name>' undeclared identifier, 即使它应该在另一个 .h 文件中声明

c++ - 默认构造函数中未识别的标识符

c - 为什么 5[a] 有效并且不会产生无效标识符的错误?