有问题就有答案
Q1:C++简单问题
for 循环内的三个 表达式都是可以省略的for(表达式1;表达式2;表达式3)你上面的代码 就是省略了 表达式1 也就是说循环开始时没有表达式1需要执行,直接判断表达式2 即 只要 beg!=end 就执行循环
Q2:c++编写一个简单的类
已级给你实现了,我在具体修正了的地方加了注释:# include " stdafx。h " # include " stdafx。h " #包括#包括#包括使用命名空间标准玩家类{ private : char PlayerID[20];char播放器名称[10];int PlayerLevel国际经验;public : Player();~ Player();void GetPlayerInfo();void PutPlayerinfo(Player * ptr);内部搜索(玩家*ptr,字符* ID);空的排序(播放器* ptr);};Player:Player()//构造函数得要{}Player:~Player()//析造函数也得要{ } void player :3360 getplayerinfo(){ int cont=0;cout"\n输入玩家的ID:" PlayerID;cout"\n输入玩家的姓名:“playernameplayerlevel=rand()0;//据题意要加个0-100的范围经验=cont } void Player : putplayerinfo(Player * ptr){ int cont=0;while(cont5 ) { cout" \n玩家身份证:"身份证;玩家测试;测试搜索(P,ID);测试PutPlayerinfo(P);//参数是指针所以不要用P[0],一定要这么定的话也要写成p;[0]测试。排序(P);测试PutPlayerinfo(P);系统(" PAUSE ");返回0;}
Q3:C++编程,写个类实现以下要求(内详)
楼上都说得很有道理,我来给你一个示例程序吧//类声明文件String.h代码如下:#ifndef STRING_H#define STRING_H#include using namespace std;class String{ friend ostream & operator<>(istream & input, String & s);public: String(const char* = ""); String(const String &); ~String(); const String & operator=(const String &); //赋值 String & operator+=(const String &); //字符串连接 int operator!() const; //String为空? int operator==(const String &) const; //测试s1==s2 int operator!=(const String &) const; //测试s1!=s2 int operator<(const String &) const; //测试s1(const String &) const; //测试s1>s2 int operator<=(const String &) const; //测试s1=(const String &) const; //测试s1>=s2 char & operator[](int); //返回对字符的引用 String & operator()(int, int); //返回一个子字符串 int GetLength() const; //返回字符串的长度,不包括结尾的\0private: char* sPtr; //指向字符串起始位置的指针 int length; //字符串的长度};#endif//类实现文件String.cpp代码如下:#include #include #include #include "String.h"ostream & operator<<(ostream & output, const String & s){ output<>(istream & input, String & s){ static char temp[100]; input>>temp; s = temp; return input;}String::String(const char * s){ cout<<"Convention constructor:"<<s<<endl; length = strlen(s); sPtr = new char[length+1]; assert(sPtr!=0); strcpy(sPtr, s);}String::String(const String & ){ cout<<"Copy constructor:"<<.sPtr<<endl; length = .length; sPtr = new char[length+1]; assert(sPtr != 0); strcpy(sPtr, .sPtr);}String::~String(){ cout<<"Destructor:"<<sPtr<<endl; delete[] sPtr;}const String & String::operator=(const String & right){ cout<<"operator = called"<<endl; if(&right; != this) //避免自我赋值 { delete[] sPtr; length = right.length; sPtr = new char[length+1]; assert(sPtr!=0); strcpy(sPtr, right.sPtr); } else { cout<<"Attempt assignment of a String to itself\n"; } return *this;}String & String::operator+=(const String & right){ char* tempPtr = sPtr; length += right.length; sPtr = new char[length+1]; assert(sPtr!=0); strcpy(sPtr, tempPtr); strcat(sPtr, right.sPtr); delete[] tempPtr; return *this;}//字符串为空?int String::operator !() const{ return length == 0;}int String::operator==(const String & right) const{ return strcmp(sPtr, right.sPtr)==0;}int String::operator!=(const String & right) const{ return strcmp(sPtr, right.sPtr)!=0;}int String::operator<(const String & right) const{ return strcmp(sPtr, right.sPtr)(const String & right) const{ return strcmp(sPtr, right.sPtr)>0;}int String::operator<=(const String & right) const{ return strcmp(sPtr, right.sPtr)=(const String & right) const{ return strcmp(sPtr, right.sPtr)>=0;}//返回对String中某个字符的引用char & String::operator [](int subscript){ //首先测试下标是否越界 assert(subscript>=0 && subscript=0 && index= 0); String * subPtr = new String; assert(subPtr!=0); //计算子字符串长度 int size = 0; if(sublength == 0 || (index+sublength>length)) { size = length - index + 1; } else { size = sublength + 1; } //分配子字符串内存 delete subPtr->sPtr; subPtr->length = size; subPtr->sPtr = new char[size]; assert(subPtr->sPtr!=0); int i = index, j=0; //把子字符串拷贝到新的对象中 for( ; isPtr[j] = sPtr[i]; } subPtr->sPtr[j] = "\0"; return *subPtr;}int String::GetLength() const{ return length;}//String类使用演示程序Main.cpp代码如下:#include #include "String.h"int main(){ cout<<"--------------------------------------------------------------------\n"; cout<<" 一个有用的ANSI字符串类String的实现及使用演示程序 \n"; cout<<"by 一剑(Loomman),QQ:28077188,MSN: Loomman@hotmail.com QQ裙:30515563\n"; cout<<"--------------------------------------------------------------------\n\n"; String s1(" happy"), s2(" birthday"), s3; cout<<"s1 is \""<<s1<<"\"; s2 is \""<<s2 <<"\"; s3 is empty \n" <<"The results of comparing s2 and s1:" <<"\ns2==s1 yields "<<(s2==s1) <<"\ns2!=s1 yields "<<(s2!=s1) <s1 yields "<s1) <<"\ns2<s1 yields "<<(s2<s1) <=s1 yields "<=s1) <<"\ns2<=s1 yields "<<(s2<=s1)<<"\n\n"; cout<<"Testing! s3:\n"; if(!s3) { cout<<"s3 is empty; assigning s1 to s3; \n"; s3 = s1; cout<<"s3 is \""<<s3<<"\"\n\n"; } cout<<"s1+=s2 yields s1="; s1+=s2; cout<<s1<<"\n\n"; cout<<"s1+=\" to you\" yields\n"; s1+=" to you"; cout<<"s1="<<s1<<"\n\n"; cout<<"The substring of s1 starting at \n" <<"location 0 for 14 characters, s1(0, 14), is:" <<s1(0, 14)<<"\n\n"; cout<<"The substring of s1 starting at \n" <<"location 15, s1(15, 0) is:" <<s1(15, 0)<<"\n\n"; String * s4Ptr = new String(s1); cout<<"*s4Ptr="<<*s4Ptr<<"\n\n"; cout<<"assigning *s4Ptr to *s4Ptr\n"; *s4Ptr = *s4Ptr; cout<<"*s4Ptr="<<*s4Ptr<>a; return a;}
Q4:C++编程问题~~~
1 errorc2512:" base1" :没有合适的默认构造函数可用,这意味着没有可用的默认构造函数。您可以向代码中添加无参数构造函数:base 1(){ };注:base 1a;3360这段代码需要调用无参数构造函数。
Q5:C++ 问题
简单来说,编程就是用某种编程语言编写程序代码,在计算机的帮助下达到某种目的或解决某种问题,最终得到结果的过程。虽然电脑很强大。它可以供你上网、玩游戏、管理公司人事关系等等,但没有程序,就是一堆废铁,不会注意我们对它的“订单”。因此,我们只能通过一种方式驯服它,——程序,这是我们与计算机交流的唯一方式。具体是什么程序?程序是告诉计算机如何执行特殊任务的指令的集合。例如,它就像一个指导你烹饪菜肴的食谱,或者一个交通警察(或交通标志)指引你一路开车到目的地。没有这些特殊的指令,就不可能执行预期的任务。同样,当你想让计算机为你做某件事时,计算机本身不能主动为我们工作,所以我们必须给它下达指令,而它完全不能也不能理解人类自然语言对事物的描述,所以我们必须用程序告诉计算机该做什么,怎么做。即使是最简单的任务也需要指令,比如如何获取击键,如何在屏幕上放一个字母,如何在磁盘上保存文件等等。这么多麻烦,连编程这些东西都要考虑!难怪有人说编程这么难!你错了。其实这些指令很多都是现成的,包含在处理芯片中,嵌入在操作系统中,所以我们不用担心它们的工作。它们都是由处理器和操作系统完成的,我们不需要干预这些过程。上面提到的电脑本身不会主动做任何事情。因此,我们必须让计算机通过程序为我们“服务”。而这个过程是我们“编造”出来的。编程可以通过使用某种编程语言来实现,计算机需要做的事情是按照这种语言的语法来描述的。我们这里说的语法和外语中的语法完全不同。我们在这里讨论的语法只是阅读你的程序并制定一个书面规则。写完程序后,专门的软件会把你的程序翻译或翻译成计算机能识别的“计算机语言”,然后计算机就能“理解”你所说的话,按照你的指令做事。所以,编程其实就是一个“人给计算机制定规则”的过程。随着计算机语言的多样化,一般来说,它可以分为三类:机器语言、汇编语言和高级语言。计算机所做的每一个动作和步骤都是根据用计算机语言编写的程序来执行的。程序是计算机将要执行的指令的集合,所有的程序都是用我们掌握的语言编写的。因此,如果人们想要控制计算机,他们必须通过计算机语言向计算机发送命令。计算机唯一能识别的语言是机器语言,即由。但是通常人们在编程时不会使用机器语言,因为它非常难记忆和识别。目前常见的编程语言有两种:汇编语言和高级语言。汇编语言和机器语言的本质是一样的,都是直接在硬件上操作,只是指令采用英文缩写标识符,更容易识别和记忆。它还要求程序员以命令的形式写出每一步的具体操作。汇编器的每一条指令只能对应实际操作过程中非常细微的动作,比如移动和自增。所以汇编源程序一般比较冗长、复杂、容易出错,用汇编语言编程需要更多的计算机专业知识。然而,汇编语言的优势也很明显。用汇编语言能完成的操作是普通高级语言无法实现的,汇编源程序生成的可执行文件不仅小,而且执行速度快。高级语言是目前大多数程序员的选择。
与汇编语言相比,它不仅将许多相关的机器指令合成为一条指令,而且删除了与特定操作相关但与工作完成无关的细节,如堆栈、寄存器等的使用。从而大大简化了程序中的指令。因为省略了很多细节,所以程序员不需要有太多的专业知识。与汇编语言相比,高级语言并不是指某一种特定的语言,而是包括很多编程语言,如VB、VC、FoxPro、Delphi等。它们有不同的语法和命令格式。(1)说明:执行方式类似于我们日常生活中的“同声翻译”。应用程序的源代码在执行时被相应语言的解释器翻译成目标代码(机器语言),效率较低,无法生成可独立执行的可执行文件,应用程序也无法与其解释器分离,但这种方式灵活,可以动态调整和修改应用程序。(2)编译类:编译是指在应用源程序执行之前,将程序源代码“翻译”成目标代码(机器语言),这样其目标程序就可以独立执行,无需其语言环境,使用起来方便高效。但是,一旦应用程序需要修改,它必须首先修改源代码,然后重新编译以生成新的对象文件(*)。在执行之前。只修改目标文件而不修改源代码是不方便的。目前大多数编程语言都是编译的,如Visual Basic、Visual C、Visual Foxpro、Delphi等。这个问题其实很简单。正如我们前面所说,程序是人们与计算机交流的唯一方式,所以如果我们想让计算机为我们服务,我们必须有程序。程序从何而来?当然是我们写的。也许你会问另一个问题:当我现在需要任何程序时,我为什么要编程?你错了。虽然现在有很多程序,但是你直接在网上找类似的程序用不了多久,可能就是你需要的。然而,这就像买衣服一样。衣服虽然到处都有卖,但哪一件是“为你量身定做”的!程序也可以做很多事情。不同的程序可以做不同的事情。从大的方面到国家财政的管理,小的方面管理家庭账户。再举个例子,如果你想让你的电脑能够播放动画,那么你的电脑中也应该有一个相应的动画播放器。下面是一个F1ssh动画播放器。我们将在接下来的章节中详细介绍这个程序的编译过程。随着计算机的飞速发展,不会编程的人总有一天会被列为“文盲”。你不想要,是吗?然后学好一门编程语言。编程会过时吗?编程会过时吗?这个问题,我先问你一个问题:电脑会消失吗?两者的答案是一样的。如果你知道电脑是否会消失,你就会知道编程是否会过时。编程工具已经过时。,而编程却不会过时 计算机系统由可以看见的硬倒:系统和看不见的软件系统组成。要使计算机能够正常的工作,仅仅有硬件系统是不行的,没有软倒系统(即没有程序)的计算机可以说只是—堆废铁,什么事情都干不了。例如当你撰写—篇文章的时候,你需要在操作系统中用文字编辑软件来实现文字的输入,但如果没有这些文字输入软件的话,你是否想过如何向计算机中输入文章呢?很难想象出如何在一个没有任何软件的计算机(我们称之为裸机)上进行文字的输入。而这些软件其实就是通常我们所说的程序。 编程会过时吗?我们从另一个角度来考虑这个问题,计算机有——天会消失吗?如果有一天当世界上所有的事情处理都用不到计算机了,那么计算机将会很快的消失,那时编程不仅过时了,而且也会随之消失了。但是计算机会消失吗?当然不会,如今计算机应用到每一领域,为人类的发展做出了不可估量的贡献。试想一下如果有一天全世界的计算机突然消失了,那么这个世界将变成什么样子,或许和全世界都停电了一样恐怖,甚至还会有更大的损失。计算机的存在必须要有软件系统来维持。因此编程永远不会、也不可能会过时。 计算机程序设计语言发展到今天,已经从最原始的机器语言发展到如今可视化的集成开发环境,甚至集多种语言在同一开发平台上,像微软的NET平台。回头看看程序设计语言的发展史,不难看出对于编程来说,只会出现编程工具的过时,不会出现编程本身的过时。 不断变化的技术需要不断变化的程序员 从二十世纪60年代以后,计算机得到了突飞猛进的发展。似乎历史上没有任何一门科学的发展速度超过了计算机的发展,无论硬件、软件、还是网络都以惊人的速度向前发展。计算机的硬件发展速度遵循“摩尔定律”每十八个月速度翻一倍(实际现在已超过了这个速度)。 软件的发展速度和硬件一样,二十世纪九十年代中国的软件业还不是很成熟,而现在大大小小 的软件企业四处耸立,共享软件网上随处可见。不断发展的技术需要不断变化的程序员,例如,如今Visual Basic可以快速构Windows下的应用程序,程序设计方面的技术不断发展着,不断引进新的概念、新的方法,如从结构化的C开始,当面向对象的思想被提出后,出现了C++,微软在C++的基础上为使用户构建win32应用程序更加方便,推出了Visual C++。这也就需要程序员也要不断的更新自己的技术。 计算机科学与别的学科很不一样,不像语言学、历史学那样,几乎是永久不变的东西。计算机科学要求不断的更新自己的知识,否则很快就会被淘汰,即便是编程亦是如此。 编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。 随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。 编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。 编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。 总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。 我们一起来编程 面对摆在面前的计算机该如何操作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢?想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢?在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢?但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的! 选择适合自己的程序语言的必要性 目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。 坚定自己学习编写程序的信心 编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。 三、我可以编程吗 随着计算机软件业的发展,诞生了“程序员”这个职位。于是便形成了一种理念,编写程 序的人就是程序员,因此编程是程序员的事情。但程序员并不是一开始就是程序员,他们也是从现在我们的位置慢慢成为程序员的。 编写程序是一件很有趣的事情,因为编写程序可以干很多高级的事情。例如我们在后面的章节中介绍如何使用Visual Basic编写Flash动画播放器,以及如何编写下载软件管理器等。如果你愿意的话,你完全可以编写出比这些更高级的程序来。 编程也可以作为——种爱好或兴趣,如果你对它感兴趣学起来就容易多了!因为如果对编程感兴趣的话,就会多看些有关方面的书、多编些小程序上机实践,这些对于学习编程的帮助是非常大的,而且随着学习的进程不断的推进就会觉得它并不是很困难,相反却是很容易的。 总之,在学习编程时一定要坚持不懈,只要有信心、有毅力就一定能学好;不能因为一些似是而非的观念就动摇了自己的信心。 四、我们一起来编程 面对摆在面前的计算机该如何操作,相信这个问题已经不再是困扰大家的首要问题了。现在软件的种类那么多,在选用的时候“电脑发烧友”的心里是否也想过有一天自己能编写一款属于自己的软件呢?想学习编程的朋友在选择程序语言时会不会因为不知道如何选择而大感头痛呢?在不知如何下手的时候,朋友们的心中是不是会产生“我是不是可以编程”的思想呢?但是又有哪个程序员是不经过学习就能成功的呢!其实编写程序并不是人们所想象的那么困难、那么复杂,每个有心致力于学习计算机的朋友都是可以尝试的! 选择适合自己的程序语言的必要性 目前常用的基本程序语言的种类比较繁多,比较简单的有:Pascal、c语言、qBasic、 Fortran、Visual Basic等等。但前几种都是在DOS下进行编程的工具,Visual Basic是在 Windows下进行应用程序设计的编程工具,现在一般的计算机用户几乎都不再使用DOS了,因此我们通常会选择Visual Basic作为初学者的编程工具。Visual Basic是Windows应用程序设计中最容易上手的编程工具,学习步骤也比较容易被初学者接受。对于刚开始学习编程的初学者来说,还是选择Visual Basic,学习编程语言不能想象着一步登天,一步一个脚印的学习才是最佳方法。 坚定自己学习编写程序的信心 编写程序并不是具有专业知识的人员才有的专利,每个学习计算机的人都可以编写程序,每个人的灵感不同,在编写程序的思路和作法上又有区别。但共同的想法就是编写成功的程序。学习编程是一个漫长的过程,其中要付出艰辛的努力和汗水,不过成功者的喜悦又不是别人所能体会的。克服学习中的困难,努力去实践,要有一个思想:别人能做到的事情自己也一定可以做到。计算机的普及让更多的人有了学习的机会,也让更多的人参与到编程人员的队伍中来,每个人都有编程的权利,机遇给予每个人都是平等的。拿出自己必胜的信心,在编程的道路工勇于进取,相信成功就会在眼前。 一、计算机语言的发展过程 到目前为止,世界上公布的程序设计语言有上千种之多,常用的也有三十来种,为了有21于正确选择和使用它们,下面我们做一个简单介绍。 (1)汇编语言: 它是依赖于具体计算机的语言,用它编写出的程序,执行效率高,但是只在一些特殊要求或特殊的场合才使用它。 (2)高级语言: 大家可能都听过使用高级语言进行程序设计,但由于对其并不了解,所以总认为这些是很高深的东西。其实并非如此,学习了后面的章节,相信同学会产生编程原来不过如此。 但计算机是不懂得自然语言的(可以理解为高级语言),而高级语言设计出来的程序如何让计算机去执行呢?其实很简单,看了下图后相信大家会明白许多。 现在我们就向大家介绍几种常见的高级语言: Fortran语言是科学和工程计算中使用的主要编程语言。目前国内使用版本多数是Fortran 66和Fortran77两种。Fortran语言的主要缺点是不能直接支持结构化编程。 Cob0l语言是商业数据处理中广泛使用的语言。由于它本身结构上的特点,使得它能有效的支持与商业处理有关的、范围广泛的过程技术。它的缺点是不简洁。 Algol语言是所有结构化语言的先驱,具有丰富的过程和数据结构。但是,这种语言并没有被广泛采用,主要是由于它本身的历史原因所造成的。 Basic语言是一种解释执行的会话语言。由于它简单易学的特点,它被广泛应用在微型计算机系统中。 PL//1语言是一个用途广泛的语言。能支持通常的科学工程和商业应用,能描述复杂的数据结构、多重任务处理、复杂的输入输出和表格处理等。 Pascal语言是70年代初期发展起来的结构化程序设计语言,具有特别丰富的数据结构类型。它自问世后,得到了众人的赞赏,也得到了软件开发者的广泛支持。Pascal语言已用于科学、工程和系统程序设计中。我们教育部计算机专业教育会议曾把Pascal语言定为计算机专业程序设计语言。 C语言是作为UNIX操作系统的主要使用语言。由于UNIX操作系统的成功,现在C语言也得到了广泛的使用。C语言是有经验的软件工程师设计的,它具有很强的功能,以及高度的灵活性。它和其他的结构化语言一样,能提供丰富的数据类型、广泛使用的指针以及—组很丰富的计算和数据处理使用的运算符。 C++语言是C语言的扩充。在1980年,贝尔实验室的Bjarne Strotstrup博士及其同事开始对C语言进行改进和扩充,最初被称为“带类的C”,1983年才取名为C++。以及不断完善和发展,成为目前的C++语言。一方面,它将C语言作为它的子集,使它能够与C语言兼容。使许多C语言代码不经修改就可以为C++语言所用以及用C语言编写的众多库函数和和实用软件可以直接用于C++语言中;另一方面。C++语言支持面向对象的程序设计这是它对C语言最重要的改进。 参考资料:<>网鸿出版社-我手都酸了啊!
Q6:几个C++的问题 急!
1.类是对象的抽象,对象是类的实例。比如汽车可以看成一个档次,而宝马、奔驰可以一一看成对象。说白了,类是一类事物的总称,对象是这些事物中的单一事物。2.当两个基类具有相同的方法时,就会出现歧义,例如:Class A { public 3360 void fun(){ } };b类{ public : void fun(){ } };Class:a,b//c继承a,b { } void main(){ c d;//定义对象d . fun();//现在会有歧义,因为A和B都有好玩的方法,现在C不知道调用哪个函数}3 .大型机:程序框架类doc类:负责保存文档和加载什么的view类:程序的视图,也就是我们能看到的接口app类:负责启动和关闭程序等。4.它可以被sendmessage函数或回调函数5使用。5.MFC中带单选按钮的CB类