- 浏览: 373586 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (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 253Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 417https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1346https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 481https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 580// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 593https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5828583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 609参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2177基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9161 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1596OpenSSL命令---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 1886ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 879转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1926转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1095C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 974转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 1006转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 821参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1623转自 http://blog.csdn.net/weixinh ...
相关推荐
### C++基础知识总结 #### 一、C++数据和变量的类型及变量作用域 **1. 基本的内置类型** C++提供了一系列基本的内置数据类型,用于存储不同种类的数据。以下是一些常见的类型及其特点: - **布尔型 (`bool`)**:...
C++基础知识介绍,清楚简单明了,很容易进行记忆与学习
C++基本知识点涵盖了语言的核心语法、面向对象编程原理以及标准库的使用等多个方面。下面详细介绍C++编程语言的基本知识点。 首先,内联函数是C++中一种特殊的函数,用于优化小函数的调用过程。在编译时,内联函数...
C++是一种功能强大且灵活的编程语言,本文档旨在为读者提供一个基本的C++基础知识入门指南,包括创建项目、编写代码、运行程序、注释、变量、常量、关键字、标识符命名规则和数据类型等方面的知识点。 1. 创建项目...
【少儿编程C++初级基础知识点】是针对初学者设计的一系列C++编程教学内容,旨在帮助孩子们建立起坚实的编程基础。这个压缩包包含了多个章节的源代码文件,涵盖了C++语言的基础概念和关键语法,让我们逐一解析这些...
C/C++ 面试基础知识总结,只为复习、分享。 文档目录 文档评论 (0) C/C++ 面试基础知识总结 C/C++ STL 数据结构 算法 Problems 操作系统 计算机网络 网络编程 数据库 设计模式 链接装载库 其他 书籍...
C++初学基础知识 C++初学基础知识 C++初学基础知识 C++初学基础知识
c++基础知识,关于数据类型、常量、变量等C++基础知识的介绍
1、C++基础知识实验.cpp
PAT基础知识——STL之pair&tuple定义用法初始化:使用大括号直接对first,second赋值查询用途替换二元结构体,初始化、获取元素值更方便用于m
总的来说,这个压缩包是一个很好的C++入门学习资源,通过选择题的实践,你可以更有效地掌握C++的基础知识,为后续的学习打下坚实基础。记得,理论学习与实际练习相结合是学习编程最有效的方法,所以不要只是阅读,...
该文档对C++基础知识进行了详细归纳整理,相信会帮朋友们温故知新的。大家都加油
C++基础知识——常量
给C++初学者50个忠告和C++基础知识
本人在c++学习过程中的一些随笔,比较乱,但是很实用。
适合c++初学者,非常详细
自己整理c++基础知识.doc
学习C++的基础知识,对于任何想要从事软件开发的人来说都是必要的。它不仅适用于系统级编程,也是游戏开发、嵌入式系统、桌面应用和大规模软件项目的重要选择。掌握C++的基础,不仅可以帮助理解其他高级编程语言,也...
c++ 基础知识 以及qt5.9.9文档