如果在类3中保存类1,类2通过编辑框输入的数据?

来源:百度知道 编辑:UC知道 时间:2024/09/12 23:38:52
我分别给对话框1,2,3添加类C1,C2,C3,并且在对话框3中添加了一个按钮Button,Button的响应函数是存储对话框1,2中输入的数据。

此外,对话框1,2在各自的类C1,C2中定义了相应变量,现在我希望在类C3的Button响应函数中实现存储对话框1中编辑框里的数据Name(公有 CString类型)到文本文件,代码如下:

CFile file;
file.Open("D://UserInfo.txt",CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate);
file.SeekToEnd();
UpdateData(true);

file.Write(Name,Name.GetLength());
file.Write("\r\n", 2);

file.Close();

编译时产生错误:“Name”: 未声明的标识符。
我已将C1,C2的头文件包含进C3类中,请问为什么还会出错?C3类中的函数可以存储C1,C2中设定的公有性质的变量吗?

类数据成员的在类外部访问时需要使用对象名.成员变量名的方式访问。
在你的代码中file.Write(Name,Name.GetLength());
Name应该是C1类的成员吧,那么假设你实例化C1类的对象名为Dlg1
那么上面那句话就应该改为
file.Write(dlg1.Name,dlg1.Name.GetLength());

此外,还必须满足两个条件:
1:当你访问dlg1对象的数据时,dlg1的生命周期不能是已结束的;
2:Name的属性应该设为public