读书人

怎么在对话框类中使用视图类中的动态(

发布时间: 2012-02-21 16:26:23 作者: rapoo

如何在对话框类中使用视图类中的动态(变长)数组的值?
如何在对话框类中使用视图类中的动态(变长)数组的值?
比如我在视图类中已经得到了一组数组的值,现在我想在对话框类中使用这组数据,不知道应该怎么弄??本来我想在对话框类头文件中声明一个公有的变长数组,然后在视图类中初始化它,但是失败了。大家帮帮我怎么才能把这个变长数组的值传递到对话框中使用,越具体越好!!谢谢!!!

[解决办法]
你这是在跨类操作,
明白?

你的意思就是说要使得A类对象操作某个B类对象的一个成员(这里是一个变长数组)

最简单的办法,
就是把A类声明为B类的友元,
这样你就可以直接访问变长数组了:
A a;
B b;

a.menmberfun(b.array); //b.array 为B变长数组, 这里已经完成初始化
[解决办法]
1.
class View
{
public:
int* GetArray() { return p;} // get the array

void CreateArray() // in somewhere, create the array
{
p = new int[len];//长度为len的一维数组

}
int len;
int *p;
};

2. 最复杂的情况下:一个对话框总有一个父窗口, 这个父窗口一般是Frame窗口, 这个Frame窗口管理一个View或多个View.

class Dialog
{
public:
void UseTheArrayFromView()
{
// 1. 获得Frame指针;
// 2. 通过Frame指针获得View的指针 (pView)
// 3. 获得View的array
int* p = pView-> GetArray();
// 4. use the array as you like.
}
}


读书人网 >C++

热点推荐