C ++中类之间的变量超出范围

时间:2012-05-23 22:39:24

标签: c++ class scope

我刚刚回到编程中,所以请原谅我这是非常愚蠢的。

我有2个班级(现在)。一个是Windows Form类,我在其中使用Button_Click事件来触发通信端口打开。我想将用户在表单上输入的数据传递给Communication类,以便进一步处理(发送)。 这是初始化和调用Communication类的部分:

wchar_t * data = new wchar_t[nLength];
    *data = *wch;

    SerialCommunication comm1;
    bool comm1ok = comm1.SerialWrite(data);

变量“data”是一个指针,所以我想把它的地址传递给另一个要使用的类。 这是我的第二堂课:

bool SerialCommunication::SerialWrite(wchar_t * datar){...

但数据从未实现过。一旦SerialWrite()函数启动,它就会超出范围。我是否需要以其他方式声明此指针,以确保在类之间移动时它不会消失?

据我所知,这些类都是公开的(好吧,我写了一个SerialCommunication,所以我知道它是公开的)。

我做错了什么?我应该改变什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

此:

*data = *wch;

没有按照你的想法(或我认为你的想法)。它只是将wch的第一个元素复制到data的第一个元素中。