设为首页 加入收藏

TOP

C++嵌套类的使用
2015-07-20 17:22:03 来源: 作者: 【 】 浏览:4
Tags:使用
C++的嵌套类意思就是类中定义的类,它和外围类的成员类似,也被相应的访问权限修饰符修饰。
1 嵌套类可以直接方位外围类中的static成员变量。
2 嵌套类可以通过引用,指针,或者对象来访问外围类的成员,不管该成员是public,private,protected。
3 嵌套类被private修饰的时候就不能在用户代码中被定义对象,因为是private的
4 外围类对嵌套类的非public成员没有访问权限,对public成员具有访问权限
5 外围类不能直接访问嵌套类的public静态成员,必须加上限定符。


示例程序如下:
//QT.h
#ifndef	DDXX_QT_H
#define	DDXX_QT_H

class BA
{
	class SB;
public:
	BA();
	~BA();
	int	bc;
	static	int bd;
	void	funp(SB* pSb);
private:
	int ba;
	static	int	bb;


public:
	class SB
	{
	public:
		SB();
		~SB();
		int sa;
		static int sb;
		void	func(BA* pBa);
	private:
		int sc;
		static	int	sd;
		


	};
};

#endif
//QT.cpp
#include "QT.h"
#include 
  
   
using namespace std;

int	BA::bd = 12;
int	BA::bb = 13;
int	BA::SB::sb = 21;
int	BA::SB::sd = 23;
BA::BA()
{
	ba = 1;
	bc = 2;
}


BA::~BA()
{


}


void	BA::funp(BA::SB* pSb)
{
	pSb = new BA::SB();
	pSb->sa;
	pSb->sb;
	//pSb->sc;	//private
	//pSb->sd;	//private
	


	delete pSb;
	pSb = NULL;


}


BA::SB::SB()
{


}


BA::SB::~SB()
{


}


void	BA::SB::func(BA* pBa)
{


	cout<
   
    ba<
    
     bb<
     
      bc<
      
       bd<
       
        

//main.cpp

#include 
         
          
#include "QT.h"
using namespace std;


void main()
{
	BA T;
	T.funp(NULL);
	//BA::SB 当修饰符为private时候,不能被外部访问
	BA::SB	Tb;
	Tb.func(NULL);
	
}
         



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇FZU 2178 礼物分配 (折半搜索+二.. 下一篇C++ boost库无锁队列多线程并行测..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·怎样用 Python 写一 (2025-12-27 02:49:19)
·如何学习python数据 (2025-12-27 02:49:16)
·想要自学数据分析, (2025-12-27 02:49:14)
·Java 集合框架 - 菜 (2025-12-27 02:19:36)
·Java集合框架最全详 (2025-12-27 02:19:33)