⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array3d.h

📁 面向软件工程的Visual C++网络程序开发
💻 H
字号:
#ifndef _ARRAY3D_H_
#define _ARRAY3D_H_

#include "afxtempl.h"
#include "array2d.h"

template<class T>
class AFX_EXT_CLASS CArray3d {
	int m_nLayer;
	CArray2d<T> *m_pArray2d;

public:
	CArray3d() : m_nLayer(0), m_pArray2d(NULL){}
	CArray3d(int nLayer, int nWidth, int nHeight)
	{
		Array3dAlloc(nLayer, nWidth, nHeight);
	}

	~CArray3d() {
		Array3dFree();
	}
	BOOL Array3dAlloc(int nLayer, int nWidth, int nHeight) 
	{
		m_nLayer = nLayer;
		m_pArray2d = new CArray2d<T>[nLayer];
		for(int i=0; i<m_nLayer; i++) {
			if(!m_pArray2d[i].ArrayAlloc(nWidth, nHeight)) 
				break;
		}
		if(i == m_nLayer) return TRUE;
		for(int j=0; j<i; j++) {
			m_pArray2d[j].ArrayFree();
		}
		delete []m_pArray2d;
		m_pArray2d = NULL;
		m_nLayer = 0;
		return FALSE;
	}

	void Array3dFree()
	{
		for(int i=0; i<m_nLayer; i++) {
			m_pArray2d[i].ArrayFree();
		}
		m_nLayer = 0;
		m_pArray2d = NULL;
	}
	
	CArray2d<T>& operator[](int n) {
		return m_pArray2d[n];
	}
	BOOL IsEmpty() {
		if((m_nLayer == 0) || (m_pArray2d == NULL)) return TRUE;
		return FALSE;
	}
	int GetLayer() {
		return m_nLayer;
	}
	int GetWidth() {
		if(IsEmpty()) return 0;
		return m_pArray2d[0].GetWidth();
	}
	int GetHeight() {
		if(IsEmpty()) return 0;
		return m_pArray2d[0].GetHeight();
	}
};



#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -