1.想一下这个问题,现在在MFC的类中定义了一个成员数组,要初始化,怎么办?
比如:
本来想:int a[5]={1,2,3,4,5};
但是定义在类中,是不能像上面这样初始化的,只能一个一个的初始化。还真是不好办。
你有好方法吗?
不过,如果是静态成员,就很好办了。如在类中的定义:
static const CRect m_rcSquares[9];
//9个矩形。
初始化的语句可以写在源文件中:
const CRect COXgameDlg::m_rcSquares[9]={
CRect(16,16,112,112),
CRect(128,16,224,112),
CRect(240,16,336,112),
CRect(16,128,112,224),
CRect(128,128,224,224),
CRect(240,128,336,224),
CRect(16,240,112,336),
CRect(128,240,224,336),
CRect(240,240,336,336)
};
这样是可以的。
2.还有一种情况也比较常见。就是定义了一个类对象为成员变量。现在想初始化。一时竟然不知道如何下手。
比如:
Student s;
这是在另一个类中定义了s,学生类的对象。还没有调用它的构造函数初始化。到底怎样才能调用它本身的构造函数初始化呢?问了高手,后来才知道是自己的c++语法不过关。像这种情况在源文件中初始化的方法如下:
s=Student(name,sex,age,major,school);//姓名,性别,年龄,专业,学校
所以我希望大家在学习MFC的过程中要不断回头看c++语法,所以流传很多人是为了学习MFC才学C++的。当然这也是很多编程高手的箴言,值得借鉴!
评论