在这个问题中,讨论了为什么公开私有类型auto
:
#include <iostream>
using namespace std;
class Base {
class PrivateClass {
public:
void bar() { cout << "PrivateClass" << endl; }
};
public:
PrivateClass foo() {
PrivateClass a;
return a;
}
};
int main() {
Base b;
auto p = b.foo();
p.bar();
return 0;
}
完全符合 C++11 标准。我仍然不明白这个习语在实际应用程序中如何有用。 是否存在可以有效使用此成语的问题,或者应该将其视为关键字的“好奇”副作用?