1 //继承同名静态成员处理方式
2 #include <iostream>
3 #include <string>
4 using namespace std;
5
6 class Base
7 {
8 public:
9 static int m_A;
10
11 static void func()
12 {
13 cout << "Base - static void func()" << endl;
14 }
15
16
17 };
18
19 int Base::m_A = 100;
20
21
22 class Son :public Base
23 {
24 public:
25 static int m_A;
26
27 static void func()
28 {
29 cout << "Son - static void func()" << endl;
30 }
31 };
32
33 int Son::m_A = 200;
34
35 //同名静态成员属性
36 void test01()
37 {
38
39 //1.通过对象方式 访问
40 cout << "通过对象方式访问: " << endl;
41 Son s;
42 cout << "Son-m_A = " << s.m_A << endl;
43
44 cout << "Base-m_A = " << s.Base::m_A << endl;
45
46
47 //2.通过类名方式访问
48
49 cout << "通过类名的方式访问:" << endl;
50 cout << "Son m_A = " << Son::m_A << endl;
51 //第一个::代表通过类名的方式访问 第二个::代表访问父类作用域下的
52
53 cout << "Son m_A = " << Son::Base::m_A << endl;
54
55
56 }
57
58 //同名静态成员函数
59 void test02()
60 {
61 //通过对象的方式访问
62 cout << "通过对象的方式访问:" << endl;
63 Son s;
64 s.func();
65
66 s.Base::func();
67
68 //通过类名的方式访问
69 cout << "通过类名的方式访问:" << endl;
70 Son::func();
71 Son::Base::func();
72
73
74 }
75 int main()
76 {
77
78 //test01();
79 test02();
80
81 system("pause");
82
83 return 0;
84
85 }

C++ //继承同名静态成员处理方式的更多相关文章

  1. C++ //继承同名成员处理方式

    1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 class Base 6 { 7 pu ...

  2. 《JS高程》实现继承的6种方式(完整版)

    许多OO语言都支持 两种继承方式: (1)接口继承:只继承方法签名: (2)实现继承:继承实际的方法. ECMAScript 由于函数没有签名,无法实现接口继承,因此只支持实现继承,而且主要是依靠原型 ...

  3. javascript实现继承的几种方式

    原型链方式实现继承 function SuperType(){ this.property = true; this.colors = ['red','blue','green']; } SuperT ...

  4. javascript(js)创建对象的模式与继承的几种方式

    1.js创建对象的几种方式 工厂模式 为什么会产生工厂模式,原因是使用同一个接口创建很多对象,会产生大量的重复代码,为了解决这个问题,产生了工厂模式. function createPerson(na ...

  5. js实现继承的5种方式 (笔记)

    js实现继承的5种方式 以下 均为 ES5 的写法: js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承 ...

  6. js实现继承的5种方式

    js是门灵活的语言,实现一种功能往往有多种做法,ECMAScript没有明确的继承机制,而是通过模仿实现的,根据js语言的本身的特性,js实现继承有以下通用的几种方式1.使用对象冒充实现继承(该种实现 ...

  7. js 实现继承的6种方式(逐渐优化)

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  8. js 实现继承的几种方式

    //js中实现继承的几种方式 //实现继承首先要有一个父类,先创造一个动物的父类 function Animal(name){ this.name = name; this.shoot = funct ...

  9. javascript中实现继承的几种方式

    javascript中实现继承的几种方式 1.借用构造函数实现继承 function Parent1(){ this.name = "parent1" } function Chi ...

随机推荐

  1. Linux mlocate源码分析:updatedb

    在Linux的文件查找命令中,mlocate提供的locate命令在单纯进行路径名名查找时有着显著的效率优势,因为mlocate预先对磁盘文件进行扫描并存储到一个数据库文件中,查找时只需要检索数据库而 ...

  2. 一文带你了解.Net信号量

    本文主要讲解.Net基于Semaphore带大家了解信号量 信号量举例 大家去银行去银行取钱,互斥锁管理的时一个柜台是否正在处理业务,而信号量管理的是整个柜台是否正在处理业务,每当有一个柜台处理完成之 ...

  3. 13 Nginx访问日志分析

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # Nginx 日志格式: # ...

  4. 谁知道百会CRM跟Zoho是一家公司吗?

    说到ZohoCRM,无论是搜索引擎还是信息网站,总会有无数的身影.很多人不知道这两家公司的关系,甚至认为百会和Zoho是一家公司.那么,百会CRM和Zoho属于同一类公司吗?它们之间有什么关系?今天小 ...

  5. 线程中的yield()

    属于本地方法 /** * A hint to the scheduler that the current thread is willing to yield * its current use o ...

  6. 浅谈C++11中的多线程(一)

    摘要 本篇文章围绕以下几个问题展开: 进程和线程的区别 何为并发?C++中如何解决并发问题?C++中多线程的基本操作 同步互斥原理以及多进程和多线程中实现同步互斥的两种方法 Qt中的多线程应用 c++ ...

  7. ES6 箭头函数你正确使用了吗

    ES6 箭头函数你正确使用了吗 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在ES6中允许使用"箭头&quo ...

  8. Adaptive AUTOSAR 学习笔记 7 - 应用设计和 Manifest

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  9. C语言:for语句原理及具体执行过程

    #include <stdio.h> int main() { int i,s=0; for(i=1;;i*=2) { s=s+i; if(i%3==0) break; i=i+2; pr ...

  10. c语言:getch() getchar()

    1.getchar();从键盘读取一个字符并输出,该函数的返回值是输入第一个字符的ASCII码:若用户输入的是一连串字符,函数直到用户输入回车时结束,输入的字符连同回车一起存入键盘缓冲区.若程序中有后 ...