Sono un novizio in C++. Qualcuno può dirmi perché il seguente codice sorgente funziona bene?Accesso ai membri della classe dopo il cast del puntatore in C++
#include <iostream>
using namespace std;
class A{
public:
A(){ cout << "create a" << endl; }
void sayGoodbye() { cout << "goodbye" << endl; }
};
class B{
public:
B() { cout << "create b" << endl; }
void sayHello() { cout << "hello" << endl; }
};
int main(array<System::String ^> ^args)
{
A* a = new A();
((B*)a)->sayHello();
a->sayGoodbye();
return 0;
}
uscita:
create a
hello
goodbye
Quello che mi chiedo è per questo che può l'accesso B :: sayHello proprio gettando in questo modo? Può accedere a tutti i membri pubblici di qualsiasi classe in questo modo?
Le prime due frasi sono molto precise. Descrivono molto bene i linguaggi C/C++. Mi piace. – dlask