#include <iostream>
using namespace std;
class A
{
public:
A() : a1_(0), a2_(0), a3_(0)
{
cout << "class A default constructor" << endl;
}
A(int a1, int a2, int a3) : a1_(a1), a2_(a2), a3_(a3)
{
cout << "class A constructor" << endl;
}
~A()
{
cout << "class A destructor" << endl;
}
static int const s1;
int a1_;
protected:
static int const s2;
int a2_;
private:
int a3_;
};
int const A::s2 = 345;
class B : public A
{
public:
int b0_;
B() : A(), b1_(0), b2_(0), b3_(0)
{
cout << "class B default constructor" << endl;
b0_ = A::s2;
}
B(int a1, int a2, int a3, int b1, int b2, int b3) : A(a1, a2, a3), b1_(b1), b2_(b2), b3_(b3)
{
cout << "class B constructor" << endl;
}
~B()
{
cout << "class B destructor" << endl;
}
int b1_;
protected:
int b2_;
private:
int b3_;
};
int const A::s1 = 123;
int main() {
cout <<"s1:"<< A::s1;
cout << "s1:" <<B::s1<<endl;
cout << "---create a1-------\n";
A a1;
cout << "---create a1-------\n";
B b1;
cout << "b0_(static protect A::s2) " << b1.b0_<<endl;
cout << "a1.s1,b1.s1\n";
cout << a1.s1;
cout << b1.s1 << endl;
cout << "____________\n";
b1.a1_ = 333;
a1.a1_ = 666;
cout << a1.a1_;
cout << b1.a1_;
/*
while (1) {
;
}
*/
return 0;
}
C++继承的访问修饰符与静态
最新推荐文章于 2024-09-16 17:46:36 发布