编译器错误 C2249
“member”: 没有到 access member (在“class”虚拟基中声明)的访问路径
该 member 是从非公共 virtual 基类或结构继承的。
示例
下面的示例生成 C2249。
// C2249.cpp
class A {
private:
void privFunc( void ) {};
public:
void pubFunc( void ) {};
};
class B : virtual public A {} b;
int main() {
b.privFunc(); // C2249, private member of A
b.pubFunc(); // OK
}
如果尝试从标准 C++ 库中将一个流分配给另一个流,则也可能发生 C2249 错误。 下面的示例生成 C2249。
// C2249_2.cpp
#include <iostream>
using namespace std;
int main() {
cout = cerr; // C2249
#define cout cerr; // OK
}