首页 > 解决方案 > 如何在 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. 怎么做?

标签: c++classidentifier

解决方案


可能的解决方案之一:

using bar = class foo;
p = bar();

推荐阅读