关于 CArray 的问题

大家好,请问CArray型数据可以做类的静态数据成员吗?如果能,如何初始化?我一直初始化不成功其实是这样的,我是一个mfc新手,做一个等高线程序。因此我定义了一个类Con... 大家好,请问CArray型数据 可以做 类的静态数据成员吗?如果能,如何初始化?我一直初始化不成功
其实是这样的,我是一个mfc新手,做一个等高线程序。
因此我定义了一个类 Contour ,其内容很长,我只把要问的重点写下
class Contour
{
...
public:
Contour(long height);
public:
long m_height;
static CArray<CPoint,CPoint> SamplePt;
...
}
这么说吧,SamplePt就是样本点,是已知的,height表示高度
对一副地图来说,会有不同高度的等高线,如果我想画一条高度为50m的等高线,那么我Contour(50),如果想画一条高度为30m的等高线,就Contour(30),但是不管是50m,还是30m的等高线,他们都是通过数据SamplePt计算得来的,因此不同的contour对象都会有同一个SamplePt,所以,我想吧SamplePt设计成一个静态数据,也就是
static CArray<CPoint,CPoint> SamplePt;
但是现在问题是,我如何初始化SamplePt呢?我只知道对简单类型比如int的静态数据初始化,对CArray类型还没见过
对int类型的静态变量初始化 应该是这样
int Contour::i=0;
所以我试着模仿这样写过
CArray<CPoint,CPoint> Contour::SamplePt.add(...);
这样不行~~
不知道怎么办了,所以请教各位
请帮帮忙~~~
展开
 我来答
帅幻迩3N
2008-11-15 · TA获得超过682个赞
知道小有建树答主
回答量:486
采纳率:100%
帮助的人:307万
展开全部
首先在Contour.h里面定义静态变量和静态变量初始化函数
static CArray<CPoint,CPoint&> SamplePt;
static void InitialStatic();

然后在Contour.cpp中声明变量
CArray<CPoint, CPoint> Contour::SamplePt;
实现InitialStatic
void Contour::InitialStatic()
{
if (SamplePt.GetSize() == 0) //防止被重复初始化
{
SamplePt.Add(CPoint(1, 1));
SamplePt.Add(CPoint(1, 2));
SamplePt.Add(CPoint(1, 3));
SamplePt.Add(CPoint(1, 4));
SamplePt.Add(CPoint(1, 5));
}
}
并在Contour::Contour()中调用InitialStatic
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
wangbinwh
2008-11-15 · TA获得超过639个赞
知道大有可为答主
回答量:1367
采纳率:100%
帮助的人:540万
展开全部
.h里
#include<afxtempl.h>

class Contour
{
...
public:
Contour(long height);
public:
long m_height;
static CArray<CPoint,CPoint&> SamplePt;
...
}

.cpp里
CArray<CPoint, CPoint&> Contour::SamplePt;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式