c++里面嵌套类有什么用法,有什么嵌套类能用到而外围类做不到的。

如题所述

在C++语言中,嵌套类(nested class)其实与外围类没有什么太强的依赖关系 ,往往是因为外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现时才使用嵌套类。
但是对于JAVA来说,嵌套类与外部类则有着较为密切的关系,可以了解对比两种语言的差别。

一般来的用法是:将嵌套类应该设成私有类,这样对外部来说就是不见也是不要用的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-29
把自身声明为private外围类就做不到

实现链表模板的时候就可以把节点类声明为链表的private嵌套类,以免被误访问,破坏节点中的数据

C++类嵌套,嵌套类访问外围类的变量的问题拜托各位大神
include <iostream> using namespace std; class test_class { public: test_class():count(this) { cout<<"class init, num address:"<<&num<<endl; num = 0; } void setNum(int n){ num = n; } int* getNumAddress(){ return # } class _count { public: _count(test_cla...

c++中的类中类有哪些用法?
1、从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。假如在外围类的作用域内使用该类名时,需要加名字限定。2、从访问权限的角度来看,嵌套类名和他的外围类的对象成员名具备相同的访问权限规则。不能访问嵌套类的对象中的私有成员函数,也不能对外围类的私有部分中的嵌套类...

C++模板嵌套类函数,返回嵌套类的引用,编译不过
你的这个 Queue<T>::QueuePoint1 就是个典型,必须加typename关键字,编译器才能识别的。

Static Nested Class 和 Inner Class的不同
嵌套类可以作为接口的内部类。正常情况下,你不能在接口内部放置任何代码,但嵌套类可以作为接口的一部分,因为它是static 的。只是将嵌套类置于接口的命名空间内,这并不违反接口的规则。内部类被继承,由于内部类有一个指向外围类对象的秘密引用,所以在继承内部类的时候,该秘密引用必须被初始化。解决方...

Java中什么是嵌套类?
1. 要创建嵌套类的对象,并不需要其外围类的对象。2. 不能从嵌套类的对象中访问非静态的外围类对象。1)事实上,与前相同,静态内部类也就类似一个类的静态成员方法,它不需要外部类的对象而直接由外部类创建。2)类似一个类的静态成员方法,它只能访问外部类的静态成员,而不能访问非静态成员。3...

静态内部类和非静态内部类的区别
1. 嵌套类的对象,并不需要其外围类的对象。 即它可以不依赖于外部类实例被实例化。2. 不能从嵌套类的对象中访问非静态的外围类对象。 这是由Java语法中"静态方法不能直接访问非静态成员"所限定 3. 外部类访问内部类的的成员有些特别, 不能直接访问, 但可以通过内部类实例来访问, 这是因为静态...

java中静态内部类和内部类的区别
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。

什么是内部类
内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类。 (1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。 (2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论...

Java内部类的问题?
什么是内部类 在一个类内部的类,我们称之为内部类。内部类可以很好地实现隐藏,一般的非内部类是不允许有 private 与 protected 权限的,但内部类可以。内部类拥有外围类的所有元素的访问权限。内部类分类:内部类可以分为:实例内部类、静态内部类和成员内部类,每种内部类都有它特定的一些特点。在类...

命名空间的含义是什么?
注意不允许在另一个嵌套的命名空间中声明多部分的命名空间。 命名空间与程序集无关。同一个程序集中可以有不同的命名空间,也可以在不同的程序集中定义同一个命名空间中的类型。 using语句 显然,命名空间相当长,键入起来很繁琐,用这种方式指定某个特定的类也是不必要的。如本章开头所述,C#允许简写类的全名。为此...

相似回答