
C++
文章平均质量分 64
shenqi67
这个作者很懒,什么都没留下…
展开
-
exit和return的区别和联系
函数名称:exit头文件:函数原型:void exit(int state)函数用途:程序中止执行,返回调用过程输入参数:state 0-正常中止,非0-非正常中止1,exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的。main函数结束时也会隐式地调用exit函数。exit函数运行时首先会执行由atexit()函数登记的函数,然后会做一些自身的清理工作,同原创 2012-03-28 19:18:16 · 485 阅读 · 0 评论 -
VC++中不能为控件添加成员变量 深入本质
项目疑问提出问题1,在资源视图--右键单击--添加--资源,选择对话框后—在里面添加文本框时,不能为文本框添加成员变量。而在“解决方案资源管理器”中右键单击添加资源—对话框后,可以使用添加成员变量向导。为什么???(4-25)分析问题境界1:这是因为改了对话框ID,默认情况下可以添加成员变量,当改变了对话框ID后就不能添加成员变量了。境界2:原来是没有为对话框创建类。当创建类后原创 2012-04-25 11:42:02 · 6655 阅读 · 2 评论 -
创建类时类名不能含有模版参数
#pragma oncetemplateclass Node //应该为class Node,否则{public: T data; Node *lch; Node *rch; Node():lch(NULL),rch(NULL){} //Node *Search(Node *R,T key);};templateNode* Search(Node *R,T key)原创 2012-04-21 10:05:11 · 2240 阅读 · 0 评论 -
GetWindowRect和GetClientRect本质
void GetClientRect( LPRECT lpRect ) const;作用:把CWnd客户区的客户坐标复制到lpRect指向的结构体中。返回值:如果函数成功,返回值为非零:如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。lpRect:指向RECT结构体或CRect类的指针,接受客户区的坐标。因为此坐标是相对于CWnd客户原创 2012-03-23 13:53:27 · 648 阅读 · 0 评论 -
非静态成员引用必须与特定对象相对
#pragma once// CDlgLoad 对话框class CDlgLoad : public CDialogEx{ DECLARE_DYNAMIC(CDlgLoad)public: CDlgLoad(CWnd* pParent = NULL); // 标准构造函数 virtual ~CDlgLoad();...public: afx_msg void On原创 2012-05-03 22:16:49 · 52960 阅读 · 2 评论 -
重载 重写 隐藏
共同点:函数名相同定义:1)如果在类里函数名相同但是形参不同,则为重载。形参不同包括形参的类型个数以及顺序。2)类间。重写和隐藏都发生在基类和派生类之间。重写(覆盖):发生在派生类和基类之间。必须满足两个条件:(1)基类有virtual声明(2)函数名和形参必须完全相同。隐藏:发生在派生类和基类之间,必须满足以下两个条件:(1)派生类中函数名与基类相同(2)基类中没有virtu原创 2012-04-19 16:47:28 · 416 阅读 · 0 评论 -
实例成员和静态成员
Instance成员和static成员(p318)实例变量/函数(instance variable):和一个类定义的实例(对象)密切相关。对同一个类的不同对象,其实例变量占有不同的存储空间。Static变量(static variable or class variable)用于一个类的所有实例共享数据。静态变量的存储空间是公用的。C++也支持static function。Rema原创 2012-05-03 22:17:59 · 6830 阅读 · 0 评论 -
vector包含问题
无论在控制台还是在MFC,在用到vector时,要包含头文件并且要用到命名空间std,即#includeusing namespace std;........注意:string也是命名在std里#includeusing namespace std;......原创 2012-04-26 22:28:45 · 629 阅读 · 0 评论 -
添加变量向导
”添加变量”向导方法:将光标放在空间上面,右键单击,选择”添加变量" 1,”控件变量”复选框若选中,则添加的为指定控件的成员变量;否则,基类的成员变量。2,控件ID:可以指定为那个控件添加成员变量3,”类别”组合框(假设”控件变量”选中)下拉菜单中有两种类型:value和control。若选择control,则变量类型只有一种可选,表示此时添加的变量名是控件的一个引原创 2012-04-12 21:29:50 · 1084 阅读 · 0 评论 -
顺序表和链表的比较
一,时间性能的比较顺序表由数组实现,是一种随机存取结构,对表中任意节点存取操作时间复杂度为O(1)。而查找链表的节点,须从头指针开始沿链扫描,平均时间复杂度为O(N).因此,若线性表的操作主要是查找,很少进行插入或删除操作,采用顺序比较合适。 对于链表,对某个节点进行插入删除操作只需修改指针,无需大量移动元素,平均时间复杂度为O(1)。而顺序表在插入或删除时,需要大量移动数据元素,原创 2012-04-06 23:21:25 · 1882 阅读 · 0 评论 -
约瑟夫环实验报告
// 约瑟夫环.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include "LinkList.h"using namespace std;templatevoid Josephus(Node *first, int n){ Node *temp = NULL; cout << "离座顺序: "; while(fir原创 2012-04-08 17:28:29 · 7026 阅读 · 0 评论 -
单向循环链表
// 单向循环链表.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include "CLinkList.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){int a[]={1,2,3,4,5};int n=5;/*测试空链表*原创 2012-03-29 23:21:36 · 609 阅读 · 0 评论 -
链栈
// 链栈.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "LinkStack.h"#includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){ LinkStack stack; int i; cout << "请输入入栈元素: "; cin >>原创 2012-04-09 18:56:45 · 366 阅读 · 0 评论 -
双向循环链表
#include "stdafx.h"#include "BLinkList.h"#include using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int a[]={1,2,3,4}; int n; BLinkList blist(a,4); blist.PrintList(); n=3; blist.原创 2012-04-06 21:11:01 · 514 阅读 · 0 评论 -
计算a+aa+aaa +...+aa...a
#includeusing namespace std;int add(int a,int n){int sum=0;int s=0;for(int i=0;i{s = s*10 + a;sum += s;}return sum;}int _tmain(int argc, _TCHAR* argv[]){int a=1;i原创 2012-03-29 12:59:17 · 1685 阅读 · 0 评论 -
九九乘法表
#include#includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){for(int i=1;i{for(int j=1;j{if(j==1)cout elsecout }cout }return 0;}总结:if(j==1)cout原创 2012-03-29 13:06:51 · 350 阅读 · 0 评论 -
case语句中定义变量要加括号
map::iterator it; map::iterator itID; recv(AcceptSocket,(char*)&RecvBuf,sizeof(RecvBuf),0); switch(RecvBuf.Protocol) { case REGISTE: map::iterator it;//报错:it由“case”标签跳过 for(it=m_mUserPasswor原创 2012-06-17 10:14:44 · 2820 阅读 · 0 评论