📄 frame_step03.txt
字号:
//*****************************************************
// Step 3
// Desc: 1) 部分实现子类的成员函数(Width()和Height())
//
//
//*****************************************************
#ifndef PICTURESH
#define PICTURESH
#include <iostream.h>
class Node;
//------------------------------------------------------
class Picture
{
public:
Picture(char ** array,int wd, int ht);
~Picture();
Picture(const Picture& rhs);
Picture& operator=(const Picture& rhs);
void Display() const;
public:
void Display() const;
int Width() const;
int Height() const;
private:
Node * pt;
};
//-------------------------------------------------------
class Node
{
public:
Node();
virtual ~Node() {}
virtual void Display() const=0;
virtual int Width() const=0;
virtual int Height() const=0;
};
//------------------------------------------------------
class DataPic:public Node
{
public:
DataPic(char ** array,int wd, int ht);
~DataPic() {delete[] data;}
public:
int Width() const {return w;}
int Height() const {return h;}
private:
DataPic(const DataPic& rhs); //no define
DataPic& operator=(const DataPic& rhs); //no define
private:
int w;
int h;
char * data;
};
//------------------------------------------------------
class FramePic:public Node
{
public:
FramePic(const Picture& rhs);
~FramePic() {}
int Width() const {return kernel.Width()+2;}
int Height() const {return kernel.Height()+2;}
private:
Picture kernel;
};
//------------------------------------------------------
class HCatPic:public Node
{
public:
HCatPic(const Picture& lpic,const Picture& rpic);
~HCatPic() {}
int Width() const;
int Height() const;
private:
Picture left;
Picture right;
};
//------------------------------------------------------
class VCatPic:public Node
{
public:
VCatPic(const Picture& tpic,const Picture& bpic);
~VCatPic() {}
int Width() const;
int Height() const;
private:
Picture top;
Picture bottom;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -