MFC 自定义类 实例化在哪

yzyyzk 2010-04-11 01:25:52
CSellTicket s 有个CTicket类的成员变量a 若还有一个类想访问 CSellTicket 类中的CTicket成员变量a 怎么做到啊???

我知道 可以通过 set get 接口
但是 我通过MFC定义的类 .cpp .h中都找不到自己定义的类<没有父类>的实例化在哪里????
也就是找不到那个 s


更找不到 RUNTIME_CLASS(CSellTicket)
两个问题
1.第三个类怎么访问上面的a
2.MFC 自定义类的实例化在哪里

我该怎么办啊 !!!!

还有就是CView的父窗口与父类(基类)不是一个概念吗
...全文
390 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzyyzk 2010-04-17
  • 打赏
  • 举报
回复
SDK 中
[code=C/C++]switch (Message)

{

case ID_BTN:

{

CSnake a;//实例化这个类

a.Move();调用这个类的成员方法

break;

}code]

MFC中
[code=C/C++]
void CSnake::Move()//这是CSnake的.cpp

{

MessageBox(NULL,"snake move","",MB_OK);

}code]

我就想知道 为什么一点击 按钮 【和Move关联】 就会调用这个消息响应函数
而不用实例化这个类 ???????
但是现在我想 在类外 得到这个类的成员成员变量的值 该怎么得到
没实例化的 类我怎么得到啊???????

yzyyzk 2010-04-16
  • 打赏
  • 举报
回复
鄙视楼上!!!

11楼的帖子把 我的迷惑说的很清楚了吧
CSnake 是自定义类
这不是鸭头 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yzyyzk 的回复:]
看来这个问题还真有难度啊

CSDN没有VC高手吗?????
[/Quote]
嗯,VC快玩完了,赶紧加入我们C#吧。
yzyyzk 2010-04-14
  • 打赏
  • 举报
回复
	m_ticketlist.DeleteString(0);

CRegister *ptemp=new CRegister();
ptemp->OnInQueue();

AfxMessageBox(ptemp->m_ticket_Info.flyfrom);
delete ptemp;


试图 执行系统不支持的操作????????????

大家没有明白我的意思吗
win32中
switch (Message)

{

case ID_BTN:

{

CSnake a;//实例化这个类

a.Move();调用这个类的成员方法

break;

}
复制代码可是MFC中 你更不就不用实例化这个类void CSnake::Move()

{

MessageBox(NULL,"snake move","",MB_OK);

}
复制代码只要把这个类成员函数和 ID_BTN 关联 他就会自己 调用这类 还不用实例化

不明白 但是现在我想得到这个类的实力怎么办呢
bofrobber 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yzyyzk 的回复:]
感谢楼上 我想我还没有表达清楚

void CRegister::OnInQueue() 这个方法只有当用户点击一个按钮的时候才会触发

我在CRegister类的这个成员函数里面为

为CRegister的一个 CTicket类型的 成员变量 m_ticket_Info 的各个属性赋值了

我想在 CSell 这个类中得到 CTicket m_ticket_Info 的各个属性……
[/Quote]
只new 不delete当然会内存泄露了
yzyyzk 2010-04-12
  • 打赏
  • 举报
回复
CRegister *ptemp=new CRegister();
ptemp->OnInQueue();

AfxMessageBox(ptemp->m_ticket_Info.flyfrom);


这段代码在CSell类的成员函数中 也是只有单击某个按钮才会触发
yzyyzk 2010-04-12
  • 打赏
  • 举报
回复
没有人解答一下吗 ???
对于MFC里面这种点击按钮就会触发 某个类的成员函数 
而不需要程序员显示调用ptemp->OnInQueue();
song1177 2010-04-11
  • 打赏
  • 举报
回复
自己定义的类,要么你让MFC的主框架类来继承,要么在主框架的类里包含一个类的实例才可以。如果想在其他类里获得类的变量,首先变量必须是公有的,然后你可以获得那个类的实例指针,再从指针里来获得变量。具体问题具体分析。
yzyyzk 2010-04-11
  • 打赏
  • 举报
回复
看来这个问题还真有难度啊

CSDN没有VC高手吗?????
yzyyzk 2010-04-11
  • 打赏
  • 举报
回复
感谢楼上 我想我还没有表达清楚

void CRegister::OnInQueue() 这个方法只有当用户点击一个按钮的时候才会触发

我在CRegister类的这个成员函数里面为

为CRegister的一个 CTicket类型的 成员变量 m_ticket_Info 的各个属性赋值了

我想在 CSell 这个类中得到 CTicket m_ticket_Info 的各个属性的值

我该怎么办 ???
如果我在CSell 里面实例化CRegister
CRegister *ptemp=new CRegister();
ptemp->OnInQueue();

AfxMessageBox(ptemp->m_ticket_Info.flyfrom);


但是这样会报内存泄漏的错误????
hilevel 2010-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yzyyzk 的回复:]
看来这个问题还真有难度啊

CSDN没有VC高手吗?????
[/Quote]
首先声明:楼主的问题都只是基础问题,我也不是高手

1.我知道 可以通过 set get 接口
但是 我通过MFC定义的类 .cpp .h中都找不到自己定义的类<没有父类>的实例化在哪里????
也就是找不到那个 s

类的实例化即是对象,当然不可能在.cpp或.h中找到,要在需要使用的地方定义,然后调用
就像你要用一个整数时首先要用int a,然后再使用a

2.第三个类怎么访问上面的a

可以用3楼的方法,补充一点:如果a不是公有成员,就只能为你的类添加函数来实现访问功能,再用类的实例调用

3.还有就是CView的父窗口与父类(基类)不是一个概念吗

当然不是一个概念,类继承自它的父类,而父窗口与子窗口是一种从属关系
前一种是抽象的关系,后一种是实际的关系

4.文档类 的基类有个 CreateNewDocment
框架类 有个 CreateFrame 那我自定义的类呢(无基类的)

对于一个类,只有构造函数和析构函数是不可缺少,其余的都是为了实现某些功能而存在的
如果自定义的类有基类,则可使用基类的所有函数


如果楼主不明白我的回答,那说明楼主需要再巩固一下类与对象方面的基础知识了
lmxmx 2010-04-11
  • 打赏
  • 举报
回复
1.第三个类怎么访问上面的a

> 不明白你说的是什么意思……,LZ的表达

2.MFC 自定义类的实例化在哪里

> 类当然要由你自己来实例化了,难道你还指望系统帮你实例化??
yzyyzk 2010-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 song1177 的回复:]
自己定义的类,要么你让MFC的主框架类来继承,要么在主框架的类里包含一个类的实例才可以。如果想在其他类里获得类的变量,首先变量必须是公有的,然后你可以获得那个类的实例指针,再从指针里来获得变量。具体问题具体分析。
[/Quote]

怎么找到那个类的 实例指针????MFC 自定义类 根本看不到 CTicket ***=new CTicket();
CSellTicket s 有个CTicket类的成员变量a 若还有一个类想访问 CSellTicket 类中的CTicket成员变量a 怎么做到啊???
yzyyzk 2010-04-11
  • 打赏
  • 举报
回复
文档类 的基类有个 CreateNewDocment
框架类 有个 CreateFrame 那我自定义的类呢(无基类的)

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧