C++ (Qt)class A : public QObject{ Q_OBJECTpublic: void emitSignal() { emit sA(); }signals: void sA();}; class B : public QObject{ Q_OBJECT private slots: void sB() { qDebug( "B" ); }}; int main(int argc, char *argv[]){ A a; B b; QObject::connect( &a, SIGNAL( sA() ), &b, SLOT( sB() ) ); a.emitSignal();}
C++ (Qt)#include <stdio.h> class A {private: virtual void Print( void ) { printf("A\n"); } }; class B : public A {public: B( A & a ) : mA(a) {} void Print( void ) { printf("B\n"); } void Test( void ) { B & b = static_cast <B &> (mA); b.Print(); } // data A & mA;}; int main(int argc, char *argv[]){ A a; B b(a); b.Test(); return 0;}
#include <iostream>using namespace std;struct A{protected: void foo() { cout<<"A::foo\n"; } };struct B: A //<--- наследник имеет доступ к защищенному методу{public: using A::foo; //<--- класс B захотел, что бы метод стал стал public};int main(){ std::cout << "Hello, world!\n"; B b; b.foo();}
#include <iostream>using namespace std;struct base{ virtual void foo()const { cout << __FUNCTION__ <<endl; }};struct der:base{ virtual void foo()const { cout << __FUNCTION__ <<endl; }};int main(){ std::cout << "Hello, world!\n"; der d; d.foo(); d.base::foo(); //<--- так как, она не приватна в имени класса base, то мы можем вытащить её из под тени}