MFC框架程序,我一直有个疑问

CUG122032 2006-04-24 10:35:09
MFC框架的程序,几乎每个类,都是一个.h文件,又在.cpp文件里实现.
如果我要定义这个类的成员,就在.h里定义,如果我要实现某个函数,就在.cpp里实现.
在.h里定义成员的时候,全是在它class ***这个大括号里的.

我的问题是:如果我不在class **{}这个大括号里呢?那会代表什么?
比如说,我在class ***{}之前就定义一个int a;
这个a的范围是什么?
我今天写的一个东西,一个
struct threadInfo
{
CProgressCtrl* pCtrl;
};

我如果放在public:
里面,用的时候就会说它没有定义,我就必须把它放在class ***{}之前.
请问这是为什么?


还有,.cpp文件,一般都是Fun1{}
Fun2{}
Fun3{}
这样一个个函数的具体实现,都是一个个的大括号的模块.
我的变量或者函数的声明,或者某个语句,如果放在这些大括号外面,是什么意义呢?
如果是变量,它们的作用范围,生命周期是什么
如果是一个语句,它又是什么时候被执行的?


这两个问题困扰我好久了.因为我一开始是直接学的MFC,C++的基础特别的差,编程又特别依赖MFC的框架.所以一遇到这种问题就不知道怎么办了...
...全文
265 20 点赞 打赏 收藏 举报
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
菜牛 2006-04-26
对牛弹琴
  • 打赏
  • 举报
回复
kerbug 2006-04-26
补充一下了 .h定义了一个类 .cpp是对这个类的实现 两个和起来就是一个类了,当然不能在.cpp外面写什么东西了 ,即使写了也是没有意义的, 这就好比说在一个类里写些无关的东西
  • 打赏
  • 举报
回复
kerbug 2006-04-26
分清楚声明和定义的区别拉~~
struct threadInfo
{
CProgressCtrl* pCtrl;
};
这个东西是一个结构的声明,是告诉编译器有threadInfo这个结构,你当然不能放到人家的类里了
但是 struct threadInfo myStruct;就可以了~~~
  • 打赏
  • 举报
回复
CUG122032 2006-04-25
我是楼主.

我觉得这不是C++的问题.

是MFC框架的问题.

主要是了解MFC是怎么工作的.

我多余说那一句"C++的基础特别的差",其实我C++基础再怎么差,基本的东西也是明白的啊...

还是请思路清晰的高手来回答一下吧.
  • 打赏
  • 举报
回复
htc021 2006-04-25
我知道哦,我只学3个月,就懂的很了QQ:155184551
  • 打赏
  • 举报
回复
CUG122032 2006-04-25
Re: 我告诉你,人家叫你学好C++是好意。“我再不行也编了好几年程了”也是这个水平,那就要好好了解一下原理。....

那我在CSDN上面看见别人问问题了,就回:去看C++,去看看JAVA.去看MFC的书.

全这样回,你觉得合适吗?

你这种人我见得很多.
动不动就拿一些东西压别人,其实自己是什么样的?也不知道.坐在电脑前编一个,就全看出来了.
真正的高手是能把一个很难的问题说得很简单的.绝对不会危言SONG听,来抬高自己.

我说的可能有点重,其实我们每个人都要反思.


好了,结贴.
  • 打赏
  • 举报
回复
abuseyoudna1981 2006-04-25
看完了一本书,不能代表什么,理论和实践是两回事,看完了.不代表你理解了.而且其实你的问题,其实就是C++的基础,和什么MFC框架没太多的关系.而且VC平台并没有把C++搞得面目全非,只是你不理解而已.
  • 打赏
  • 举报
回复
clever101 2006-04-25
如果你想知道一点内幕,可以这样测试一下:
在VC上建一个控制台程序:

int a = 3;

int main(void)
{
int b = 0;
reruen 0;
}

在 main函数第一行即(int b = 0;这一行)设一个断点,看看a的值是不是等于3
你就会对全局变量和main函数的关系有所理解了。

这个关系和全局变量和WinMain函数的关系是一样的。
  • 打赏
  • 举报
回复
yyhzpk 2006-04-25
楼主问的问题都是C++方面的呀。
如果想学习MFC,给你一个地址:http://www.vczx.com/tutorial/mfc/mfc.php
不过我建议看这个之前还是学好C++
  • 打赏
  • 举报
回复
CUG122032 2006-04-25
Thinking in C++
第二版 卷一看完了.

算不算有所了解了?

其实语言都是相通的,我再不行也编了好几年程了,如果了变量的作用范围都不知道那也说不过去啊.

其实我觉得,回答别人的问题的过程,也是自己学习的一个过程呢.反正我是这么想的.
我问了这样一个问题,几乎所有的人都是这样的回贴...
难道CSDN就只有水版可以看看了吗?

真是让人失望...比如说这位的回贴...

//确实是要先学好C++先.
// 不过也可以先告诉你这个问题确实和MFC程序框架的生成有关。

这是什么心态啊?
都喜欢当老师卖关子吗?


PS:开始说正经的,我觉得这个问题跟标准C++关系不大,毕竟VC平台已经把C++搞得面目全非了.
还是要从MFC的框架入手.

再PS:只欢迎来讨论,自己想卖弄的别来.
  • 打赏
  • 举报
回复
Stefine 2006-04-25
不知你是不是cug的。

什么意思

楼主的问题就不用回答了

自己随便看一本C++的书,都可以明白

先看钱能的那本吧
  • 打赏
  • 举报
回复
clever101 2006-04-25
确实是要先学好C++先.
不过也可以先告诉你这个问题确实和MFC程序框架的生成有关。
不知你是不是cug的。
  • 打赏
  • 举报
回复
lyyyb 2006-04-25
请高手指教
  • 打赏
  • 举报
回复
lqm1003 2006-04-25
我多余说那一句"C++的基础特别的差",其实我C++基础再怎么差,基本的东西也是明白的啊...
------------------------------------------------------------------------------------
晕死,这不是基础的东西吗?
  • 打赏
  • 举报
回复
guogangj 2006-04-25
1、可以在类中定义别的类,但定义必须放置在使用之前。否则会提示undefined。
2、变量定义放在这些函数外就成了全局变量,在使用的地方需要用extern声明方可。
  • 打赏
  • 举报
回复
happyness44 2006-04-25
MFC都是C++类

是C++的全局与局部的关系

建议楼主看看MFC的原理及流程

之前先把c++重新看一下

  • 打赏
  • 举报
回复
魔芋 2006-04-24
用1个月时间看一下c++primer做完所有练习,你就不会有这样的问题了,mfc用到了C++最核心的内容,你不懂c++的话,mfc学不好的,我用了3年使用mfc,到头来还要再看一遍c++
  • 打赏
  • 举报
回复
mousubin 2006-04-24
晕,先看看C++的书去吧,太太~~~~
全局变量和类成员变量
  • 打赏
  • 举报
回复
CUG122032 2006-04-24
来人回答我的问题啊.
  • 打赏
  • 举报
回复
abuseyoudna1981 2006-04-24
先学好你的C++基础啦.这个基础差.学什么其他东西都是没任何意义的.
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2006-04-24 10:35
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……