- 浏览: 353124 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
一 冲 突
如果一个派生类的不同的基类之间有共同的成员,则在派生类中便出现了成员同名的情况,从而造成成员访问的不惟一性,这种情况称为冲突。为了解决此类问题,可以在访问同名的成员时用作用域运算符”::”指定其所属的类。例如:
如果A行和B行不指定c1的成员函数geta()和成员数据b是从哪个基类继承来的,则系统编译时会报错,指出其取值不惟一。
需要指出的是,作用域运算符“::”不能嵌套使用,它只能直接限定类的成员。例如:
程序编译指出A行语句出错,运算符“::”不能连续使用,要解决这种情况,可以
类C中增加一个取值函数getaa(),这样,B行的输出就不存在这种情况。
如果一个派生类的不同的基类之间有共同的成员,则在派生类中便出现了成员同名的情况,从而造成成员访问的不惟一性,这种情况称为冲突。为了解决此类问题,可以在访问同名的成员时用作用域运算符”::”指定其所属的类。例如:
#include<iostream.h> class A { int a; public: int b; A(int x,int y){a=x;b=y;} int geta(){return a;} }; class B { int a; public: int b; B(int x,int y){a=x;b=y;} int geta(){return a;} }; class C:public A,public B { public: C(int x,int y,int z,int q):A(x,y),B(z,q){} }; void main() { C c1(1,2,3,4); cout<<c1.A::geta()<<'\t'<<c1.A::b<<'\t'; //A行 cout<<c1.B::geta()<<'\t'<<c1.B::b<<'\n'; //B行 }
如果A行和B行不指定c1的成员函数geta()和成员数据b是从哪个基类继承来的,则系统编译时会报错,指出其取值不惟一。
需要指出的是,作用域运算符“::”不能嵌套使用,它只能直接限定类的成员。例如:
#include<iostream.h> class A{ public: int a; A(int x){a=x;} }; class B:public A{ public: int a; B(int x,int y):A(y){a=x;} }; class C:public B{ public: C(int x,int y):B(x,y){} int getaa(){return A::a;} int getba(){return B::a;} }; void main() { C c1(1,2); cout<<c1.B::A::a<<'\n';//A行 cout<<c1.B::a<<'\n'; cout<<c1.getaa()<<'\n'<<c1.B::a<<'\n'; //B行 }
程序编译指出A行语句出错,运算符“::”不能连续使用,要解决这种情况,可以
类C中增加一个取值函数getaa(),这样,B行的输出就不存在这种情况。
发表评论
-
FreeRTOS
2022-03-05 16:31 202Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 357https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1218https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 419https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 515// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 525https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5108583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 535参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2020基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 8491 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1503OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1830ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 809转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1807转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 995C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 922转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 931转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 752参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1526转自 http://blog.csdn.net/weixinh ...
相关推荐
C++面向对象基础知识总结
C++ 基础知识 C++ 基础知识 C++ 基础知识 C++ 基础知识 C++ 基础知识
c++基础知识 c++基础知识c++基础知识
C++ 基础知识学习
C\c++基础知识,面试常见问题 C\c++基础知识,面试常见问题
C++基础知识介绍,清楚简单明了,很容易进行记忆与学习
一些c++很基础的知识 还有一些c++的简单程序来解释, 适合初学者。
讲解C++基础知识,非常适合想学习C++的兄弟。
第一章 C++基础知识习题 1.1 判断下列标识符的合法性。 sin book 5arry _name Example2.1 main $1 class_cpp a3 x*y my name 答:合法的:sin book _name main class_cpp a3 非法的:5arry Example2.1 $1 x*y ...
c++相关基础知识,继承、封装、多态等
培训基本知识 C++基础 培训基本知识 C++基础 培训基本知识 C++基础 培训基本知识 C++基础
c++基础知识 c++教程 c++基础知识 c++教程 c++基础知识 c++教程 c++基础知识 c++教程
包含了c++编程语言的基本知识点,是一个汇总性质的文件,可以很好的查缺补漏。
公司考试时的一些题目关于C++的,很有用的
1、 名字空间的定义 namespace 名字空间名{ 名字空间成员 } 2、 名字空间指令 using namespace 名字空间名; 3、 名字空间声明 using 名字空间名::标示符; 4、 无名名字空间 namespace { 名字空间成员; } 5、无名...
少儿编程C++基础知识点——上
C++基础知识讲义,适合刚刚学习c++的兄弟,及作初级C++授课的讲师
c++二级公共基础知识考点归纳整理,对打算考C++二级的同学很有帮助
c++基础知识,sql基础知识
介绍c++基础知识的课件,看了会有收获的