#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdlib.h>
using namespace std;
class A
{
public:
A()
{
cout << "A的构造函数" << endl;
}
public:
static int a;//因为静态成员属性必须在外面进行显示初始化,所以需要是public类型的
int b;
public:
void getParent()
{
cout << "b=" << b << endl;
}
void printT()
{
cout << "aaaaaaa" << endl;
}
};
int A::a = 100;
//这句话 不是简单的变量赋值 更重要的是 要告诉C++编译器 你要给我分配内存 ,我再继承类中 用到了a 不然会报错..
class B:public A
{
public:
int b;
int c;
public:
void get_child()
{
cout << "b " << b << endl;
cout << a << endl;
}
void print()
{
cout << "BBBB " << endl;
}
};
//1 static关键字 遵守 派生类的访问控制规则
//2 不是简单的变量赋值 更重要的是 要告诉C++编译器 你要给我分配内存 ,我再继承类中 用到了a 不然会报错..
//3 A类中添加构造函数 如果不写public访问控制符,那么默认构造函数是私有的,当子类继承后用来构造新的对象时在子类不能访问
//A类的构造函数中 A的构造函数是私有的构造函数 ...
//被别的类继承要小心....
//单例场景 .... UML
int main(void)
{
A a1;
a1.printT();
B b1;
b1.print();//调用子类
b1.get_child();
system("pause");
return 0;
}
/*
* static修饰的成员变量必须显式初始化,在类的外部
成员函数不写访问控制符默认是私有的
*/
c++ static修饰的成员变量必须在类外显示的进行初始化
猜你喜欢
转载自blog.csdn.net/baixiaolong1993/article/details/89205634
今日推荐
周排行