博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内部类
阅读量:2168 次
发布时间:2019-05-01

本文共 681 字,大约阅读时间需要 2 分钟。

定义内部类:

把一个类的定义写在另一个类的内部,则称里面的这个类为内部类。例如,Inner就是

class AAA{    public:    //第一个一个内部类    class Inner    {        public:         char name[64];    };}

使用内部类:

在使用该内部类时,类名要使用全称AAA::Inner,例如

int main(){    AAA::Inner a;    strcpy(a.name,"Anxi");}

注意事项

内部类和外部类互相没有特权
它们不是朋友关系
它们不是父子关系
它们没有任何特殊关系
所以外部类无法自由访问内部类,内部类也无法自由访问内部类

**内部类的访问限制

如果内部类被protected/private限制,则该类在外部不可见。(类名被完全隐藏)**

内部类的分离式写法

也可以把内部的成员函数定义分离到*.cpp中实现。。。

//////////AAA.cpp/////////AAA::Inner::Inner(){}void AAA::Inner::Test(){    printf("name:%s\n",name);}

为什么要用内部类?

既然内部类和普通类并无区别,那为什么要把它写在另一个类的内部呢?
原因:
(1)避免名字冲突
(2)如果一个类只在模块内部使用,则可是实现类名隐藏
当项目越来越大,避免类名的冲突成为一个现实存在的问题。。。将一些只在模块内部使用的类,写成内部类

注意:内部类还可以在定义内部类,没有层数限制,但一般就写两层

转载地址:http://pevzb.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>