共用方式為


編譯器錯誤 C2249

'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
}