Geschützte Daten in übergeordneter Klasse in untergeordneter Klasse nicht verfügbar?
Ich bin verwirrt: Ich dachte, geschützte Daten könnten von den Kindern einer bestimmten Klasse in C ++ gelesen / geschrieben werden.
Das folgende Snippet kann in MS Compiler nicht kompiliert werden
class A
{
protected:
int data;
};
class B : public A
{
public:
B(A &a)
{
data = a.data;
}
};
int main()
{
A a;
B b = a;
return 0;
}
Fehlermeldung:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
demoFail.cpp
demoFail.cpp(12) : error C2248: 'A::data' : cannot access protected member declared in class 'A'
demoFail.cpp(4) : see declaration of 'A::data'
demoFail.cpp(2) : see declaration of 'A'
Was mache ich falsch?