C++学习笔记:3.3.6 派生类中的static关键字
2016-02-24 10:59
309 查看
继承和static关键字在一起会产生什么现象呢?
理论知识:
1.基类定义的静态成员,将被所有派生类共享
2.根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的访问性质(遵守派生类的访问控制)
3.派生类中访问静态成员,用以下形式显示说明:
类名::成员
或通过对象访问 对象名.成员
案例:
理论知识:
1.基类定义的静态成员,将被所有派生类共享
2.根据静态成员自身的访问特性和派生类的继承方式,在类层次体系中具有不同的访问性质(遵守派生类的访问控制)
3.派生类中访问静态成员,用以下形式显示说明:
类名::成员
或通过对象访问 对象名.成员
案例:
// 继承中同名变量和成员函数.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; class A{ public: static int a; int b; A(){ cout << "A类中添加构造函数" << endl; } void get(){ cout << "b: " << b << endl; } void print(){ cout << "我是A" << endl; } private: }; int A::a = 100; //static 关键字 需要 显示初始化 告诉C++编译器给我分配内存 class B :private A{ public: int b; int c; B(){ cout << "添加B的构造函数" << endl; } void getChild(){ cout << "b: " << b << endl; cout << a << endl;//在类的内部使用a,ok } void print(){ cout << "我是B" << endl; cout << a << endl; } private: }; int _tmain(int argc, _TCHAR* argv[]) { //1.static关键字 遵守派生类的访问控制规则 B b1; //b1.a = 200;//因为是private继承,只能在类的内部使用 err b1.print();//如果没有给a分配内存,将会报错。分配了的话,可以使用 输出200 return 0; }
相关文章推荐
- strtod函数的使用
- C语言带参数的main函数
- 华为经典面试题---大数乘法的c++实现
- C++编程,输出给定int数组中的重复元素,元素取值有上限
- C++学习笔记:3.3.5 继承中的同名成员变量和函数
- C++基础::运算符重载
- c语言入门之项目3.7——用for循环输出一个等腰直角三角形
- C++语言-02-函数
- C++基础::shared_ptr 编程细节(三)
- C++ inline 函数
- C++学习笔记:3.3.4 继承和组合混搭情况下,构造和析构调用顺序
- cl命令行编译Cpp
- C++程序员学习发展方向分析和指导(C++入门学习指导建议必看)
- 1、C++的的升级
- c语言入门之项目3.5——利用for循环输出一个三角形
- c语言入门之项目3.6——利用for循环输出一个直角三角形
- c++ 虚函数
- C++学习笔记:继承中的构造与析构
- 函数副本机制
- C++基本概念----构造函数和析构函数