#include <iostream>
using namespace std;

class A {
    typedef int myInt;
    int k;
public:
    A(int i) : k(i) {}
    myInt getK();
};

myInt A::getK() { return k; }

int main (int argc, char * const argv[]) {
    A a(5);
    cout << a.getK() << endl;
    return 0;
}

编译器在此行中未将myInt识别为“int”:
myInt A::getK() { return k; }

如何使编译器将myInt识别为int?

最佳答案

typedef创建同义词,而不是新类型,因此myIntint已经相同。问题是范围-全局范围中没有myInt,您必须在类外部使用A::myInt

A::myInt A::getK() { return k; }

关于C++ typedef和返回类型: how to get the compiler to recognize the return type created with typedef?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10251980/

10-11 19:18