成员函数

成员函数
成员函数

CcmdUI类中常用的成员函数及其功能描述

区域类

菜单类CMenu

1、创建菜单

CMenu类的成员函数CreateMenu和CreatePopupMenu分别用来创建普通菜单和弹出菜单,其函数原型如下:

BOOL CreateMenu();

BOOL CreatePopupMenu();

2、调用菜单

BOOL LoadMenu(LPCTSTR lpszResourceName);

BOOL LoadMenu(UNIT nIDResource);

3、添加菜单项

BOOL AppendMenu(UNIT nFlags, UNIT nIDNewItem, const CBitmap*pBmp);

BOOL AppendMenu(UNIT nFlags, UNIT nIDNewItem=0, LPCTSTR lpszNewItem=NULL); BOOL InsertMenu(UNIT nPosition, UNIT nFlags, UNIT nIDNewItem, const CBitmap*pBmp); BOOL InsertMenu(UNIT nPosition,UNIT nFlags,UNIT nIDNewItem=0,LPCTSTR lpszNewItem=NULL);

形参nIDNewItem为新增菜单项的ID号,lpszNewItem为新增菜单项的标题,pBmp为位图指针,nPosition为新增菜单项的插入位置,nFlags表示新增菜单项的状态信息,其取值的不同会影响其他参数的含义。

参数nFlags的取值及其含义

在菜单栏中新增菜单后,不管菜单栏所在窗口是否改变,都应该调用CWnd类的成员函数CWnd::DrawMenuBar更新菜单栏。DrawMenuBar的函数原型为void DrawMenuBar()。

4、删除菜单项

BOOL DeleteMenu(UNIT nPosition, UNIT nFlags);

在菜单栏中删除菜单后,不管菜单栏所在窗口是否改变,都应该调用CWnd类的成员函数CWnd::DrawMenuBar更新菜单栏

5、获得菜单项信息

GetMenuItemCount函数

UNIT GetMenuItemCount()const;

其功能是得到某列菜单中的菜单项数。

GetMenuItemID函数

UNIT GetMenuItemID(int nPos)const;

其功能是返回参数nPos指定位置菜单项的ID号

GetSubMenu函数

CMenu*GetSubMenu(int nPos)const;

其功能是得到指向某列菜单的指针

调用上下文菜单

BOOL TrackPopupMenu(UNIT nFlags,intx,inty, CWnd*pWnd, LPCRECT lpRect=0);

形参nFlags表示菜单在屏幕上的显示位置及鼠标的按键状态,具体取值和含义见下表:

创建并初始化工具栏,通过CToolBar::Creat实现,其函数原型为:

BOOL Creat(CWnd*pParentWnd,DWORD dwStly=WS_CHIL D︱WS_VISIBLE︱CBRS_TOP,UNITnID=AFX_IDW_TOOLBAR);

参数pParentWnd为指向工具栏所在父窗口的指针,dwStyle为工具栏的格式,其取值及含义:

将储存在位图资源中的按钮与工具栏资源相连接,该过程通过调用函数CToolBar:LoadBitmap实现,该函数原型如下:

BOOL Load(LPCTSTR lpszResourceName);

BOOL Load(UNIT nIDResource);

常用的Windows标准控件的名称、功能描述及其对应的MFC类

列表框的常用消息及含义

数组类的CArray类中的常用成员函数及其功能描述

成员函数、非成员函数和友元函数介绍

成员函数、非成员函数和友元函数介绍 一、成员函数、非成员函数和友元函数 成员函数和非成员函数最大的区别在于成员函数可以是虚拟的而非成员函数不行。 成员函数的优势是能够方便的进行动态绑定,实现多态。 说明一个函数为一个类的友元函数则该函数可以访问此类的私有数据和方法。 二、成员函数介绍 1、显式构造函数 C++中的e xplicit关键字用来修饰类的构造函数,表明该构造函数是显式的。 隐式构造函数能够实现将该构造函数对应数据类型的数据转换为该类对象。 class MyClass { public: MyClass( int num); } MyClass obj = 10; //ok,convert int to MyClass 如果在构造函数前加上关键字explicit,上述编译出错。 2、静态函数: 类中,static型的成员函数,由于是类所拥有的,而不是具体对象所有的。 静态函数屏蔽了this指针,因此,如果成员函数作为回调函数,就应该用static去修饰它。 3、虚函数: 虚函数首先是一种成员函数,它可以在该类的派生类中被重新定义并被赋予另外一种处理功能。 注意多态不是函数重载。函数重载属于静态绑定,虚函数实现多态是动态绑定。 4、纯虚函数: 在抽象类中定义纯虚函数,必须在子类实现,不过子类也可以只是声明为纯虚函数,由 子类的子类实现。 5、协变返回类型: 一般来说,一个重写的函数与被它重写的函数必须具有相同的返回类型。 这个规则对于”协变返回类型(covariant return type)”的情形来说有所放松. 也就是说,若B是一个类类型,并且一个基类虚拟函数返回B *,那么一个重写的派生类函数可以返回D *, 其中的D公有派生于B(即D是一个(is-a)B).若基类虚函数返回B &,那么一个重写的派生类函数可以返回一个D&. 考虑如下一个shape层次结构的clone操作: Class Shape { Public: //… Virtual Shape *clone () const = 0; //prototype(原型) //… }; Class Circle : public Shape {

MFC——4个基本类中的成员函数介绍.docx

09121852杜军机械设计及理论 1. CMainFrame ActivateFrame使框架对用户可视并可用 CalcWindowRect每当主框架窗I I的客户区尺寸发生变化或控制条的位置发生变 化,需要重新排列客户区时,调用该函数 Create调用以构造和初始化一个与CFrameWnd对象有关的Windows框架窗口DefWindowProc该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消 息提供缺省的处理 DestroyWindow销毁指定的窗口 DoDataExchange UpdateData会调用这个函数,调用它来初始化对话框的控件或更新数据 GetActiveDocument得到当前文档的指针 GetActiveFrame 返回活动CFrameWnd 对象 GetScrollBarCtrl调用这个成员函数以获取指定的了滚动控件或分隔窗I I的指针LoadFrame调用以从资源信息屮动态构造一个框架窗口 OnAmbientProperty框架调用这个成员函数以从包含OLE控件的窗口获得ambient属性值。重载这个函数以改变OLE控件容器向它的控件返回的缺省ambient属性值。任何没冇被重载函数处理的ambient属性请求将被传递到慕类的实现中OnChildNotify该函数为重载函数,作为部分消息映射被调用,告诉父窗口即将被告知一个窗口刚刚被创建 OnCmdMsg该函数的功能首先按字节对消息进行排序,对于WM_COMMAND 消息,调用OnCommand消息响应函数,对于WM_NOTIFY消息调用OnNotify 消息响应函数。任何被遗漏的消息将是一个窗I I消息。OnWndMsg函数搜索类的消息映像,以找到一个能处理任何窗口消息的处理函数。如果OnWndMsg函数不能找到这样的处理函数的话,则把消息返冋到WindowProc函数,由它将消息发送给DefWindowProc函数 OnCommand该函数查看这是不是一个控件通知,如果它是,OnCommand函数会试图将消息映射到制造通知的控件;如杲他不是一个控件通知,OnCommand 就会调用OnCmdMsg函数 OnCreateClient为框架构造一个用户窗口 OnFinalRelease木函数在对对象的最后一个OLE参考或对象对别人的后一个OLE 参考被释放时,由框架调用 OnNotify框架调用这个函数以通知控件的父窗I」,在控件中发生了一个事件,或者该控件需要某些类型的信息。OnNotify处理控件通知的消息映射OnSetPreviewMode 设置应用的主框架成为或退出预打印模式 PostNcDestroy在窗口被销毁以后,缺省的OnNcDestroy成员函数调用这个函数。派生类可以利用这个函数來执行自定义的清除工作,比如删除指针PreCreateWindow该函数是一个重载函数,在窗I I被创建而,可以在该重载函数屮改变创建参数 PreSubclassWindow这也是一个重载函数,允许首先子分类一个窗口PreTranslateMessage 在消息被分派至U Windows 函数TranslateMessage 和

CString类所有成员函数详解

CString类所有成员函数详解 2009-03-27 10:53 CString类所有成员函数详解 VC里CString是我们最常用的类之一,我们觉得对它很熟悉了,可是你知道它的所有用法吗? 还是系统的学习一下吧,认真看完本文就OK了。 下面开始: CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值字符串一样返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" ); CString s2( "abd" ); ASSERT( https://www.360docs.net/doc/809647819.html,pare( s2 ) == -1 ); ASSERT( https://www.360docs.net/doc/809647819.html,pare( "abe" ) == -1 ); CString::CompareNoCase int CompareNoCase( LPCTSTR lpsz ) const; 返回值字符串一样返回0 小于lpsz 返回-1

大于lpsz 返回1 不区分大小字符 CString::Collate int Collate( LPCTSTR lpsz ) const; 同CString::Compare CString::CollateNoCase int CollateNocase( LPCTSTR lpsz ) const; 同CString::CompareNoCase CString::CString CString( ); CString( const CString& stringSrc ); CString( TCHAR ch, int nRepeat = 1 ); CString( LPCTSTR lpch, int nLength ); CString( const unsigned char* psz ); CString( LPCWSTR lpsz ); CString( LPCSTR lpsz ); 例子最容易说明问题 CString s1; CString s2( "cat" ); CString s3 = s2; CString s4( s2 + " " + s3 ); CString s5( 'x' ); // s5 = "x"

在名字空间中声明类和成员函数

在名字空间中声明类和成员函数 赵湘宁 虽然很多程序员都熟悉名字空间的概念,但他们常常都是被动地使用名字空间。也就是说他们使用的是第三方定义的成员(如标准库的类和函数),而不是在名字空间中声明自己的类和函数。本文拟讨论如何在名字空间中声明自己的类和函数,以及如何在程序中使用它们。 名字空间是一个范畴,它包含类声明,函数声明,常量声明和模板声明等名字空间成员。例如: namespace proj_alpha { //下面是名字空间proj_alpha 的成员 class Spy {/*..*/}; void encrypt (char *msg); const int MAX_SPIES = 8; } 在上面的例子中,类Spy在一个单独的文件中实现。通常,你是在一个专门的头文件中声明一个类并在不同的源文件中独立地定义其成员函数。那么如何将名字空间成员类分离成多个源文件呢? 下面是名为Foo.hpp 的头文件,其中定义了一个名为NS的名字空间,它包含类Foo的声明: //Foo.hpp namespace NS { class Foo { public: void f(); void g(); }; }//close NS 另外,在一个单独的源文件Foo.cpp中,首先包含头文件Foo.hpp以便实现类Foo的成员函数f()和g(): //Foo.cpp #include "Foo.hpp" void NS::Foo::f() { /*..*/ } void NS::Foo::g()

{ /*..*/ } 为了使用名字空间成员,必须使用成员的全路径名,它由名字空间后跟::合成原名组成。因此,类Foo的全路径名是NS::Foo。这样编译器便可以知道NS是一个名字空间名,头文件Foo.hpp必须在引用NS之前被包含。 名字空间是可以扩展的。也就是说可以声明类,而且所声明的类在其它的.cpp文件中是相同的名字空间成员: //Bar.hpp namespace NS //扩展NS { class Bar { public: void a(); void b(); }; } 在Bar.cpp文件中: #include "Bar.hpp" void NS::Bar::a() {/*..*/} void NS::Bar::b() {/*..*/} 可以看出,虽然Foo和Bar这两个类在不同的头文件中声明,但它们都是名字空间NS的成员。并且编译器和链接器将这两个类看成是同一名字空间的成员。那么,如何在应用程序中使用这些类呢? 在文件main.cpp中,必须要包含声明类Foo和Bar的头文件并加上相应的名字空间引用声明-using: #include "Bar.hpp" #include "Foo.hpp" int main() { using NS::Bar; //使用名字空间 using NS::Foo; //同上 Bar b;

1. 解析函数

第十章 复变函数 本章研究的对象是定义在复数域上的复值函数(简称复变函数).重点研究一类比较特殊的复变函数——解析函数.主要内容包括解析函数的分析属性(微积分理论及级数表示)、几何性质(保角映射)等. §1 解析函数 一、复变函数基本概念与复变函数的导数 [单值函数与多值函数] 设Σ是扩充复平面(即包含无穷远点∞的平面)z 上的一个区域(第二十一章§5,二),对于Σ内的每个复数z ,按照一定的规律,有一个或多个复数ω和它对应,就称在Σ上定义了一个复变函数,记作 )(z f =ω 区域Σ称为函数)(z f =ω的定义域. 如果每一个复数z 都只有一个复数ω和它对应(允许不同的复数z 对应于同一个复数ω),就称函数是单值的;如果有的复数z 有多个ω值和它对应,就称函数是多值的.下面如果不加说明,一律都指单值函数. [映射·象·原象] 如果复数z 用复平面z (简称z 平面)上的点表示,复数ω用复平面ω(简称ω平面)上的点表示,那末复变函数)(z f =ω就是z 平面上区域Σ的点和ω平面上的某个点集(第二十一章§3,一)F 的点之间的对应关系.这样一来,复变函数)(z f =ω可以看成几何上的“映射”(变换)(第二十一章§1,二),点ω()(z f =ω)称为点z 的象(象点),点z 称为点ω的原象(象源).一般地,当点z 在复平面z 上画出一个图形A (或点集)时,相应地,它的象点ω在复平面ω上就画出一个图形(或点集)B.称B 为A 的象,A 为B 的原象.称函数)(z f =ω把A 映上B. [单叶函数与多叶函数·反函数] 如果函数)(z f =ω在点集A 上单值的,并且对于点集A 上的任意两个不同的点z 1和z 2,它们的象ω1=f (z 1)和ω2=f (z 2)也不同,那末称函数)(z f =ω在点集A 上是单叶的,如果点集A 上至少有两个不同的点z 1和z 2使)()(210z f z f ==ω,那末称函数)(z f =ω在点集A 上是多叶的. 如果单值函数)(z f =ω又是单叶的,它就表示A 和B 的点之间的一对一对应关系,并且对于B 上的每一点ω,A 上有一个且只有一个点z 和它对应.记作 )(ω?=z 它称为函数)(z f =ω的反函数(单值的). 如果函数)(z f =ω在点集A 上不是单叶的,那末它的反函数就是多值的了. [双方单值连续的映射定理] 设ω=f (z )是z 平面区域Σ内的单值连续函数,如果它又是单

一种使类成员函数成为 Windows 回调函数的方法

问题:一种使类成员函数成为Windows 回调函数的方法( 积分:100, 回复:62, 阅读:3393 ) 分类:Object Pascal ( 版主:menxin, cAkk ) 来自:savetime, 时间:2004-6-20 2:41:00, ID:2672562 [显示:小字体| 大字体] 一种使类成员函数成为Windows 回调函数的方法 https://www.360docs.net/doc/809647819.html, savetime2k@https://www.360docs.net/doc/809647819.html, 2004.6.20 本文排版格式为: 正文由窗口自动换行;所有代码以80 字符为边界;中英文字符以空格符分隔。 未经作者同意请勿在在任何公共媒体转载 大富翁satanmonkey 提出一个问题:HOOK 的时候,那个回调函数怎么弄才能做成类的成员?现在回调函数不能是类成员函数,访问不了类的成员变量。 https://www.360docs.net/doc/809647819.html,/delphibbs/dispq.asp?lid=2624773 后来又在另一篇贴子上也看到类似的问题,看来解决这个问题还有点用(我现在还不知道这有什么用处),所以趁着今天周末思考一下。 (太想睡了,下面只好草率地说明,如有不清楚请提问,或者日后有空再详作解释) 一开始我的想法是在类成员的回调函数内部复制参数的值,差不多理顺了,后来发现如果回调函数有返回值时,这种方法不行... 只好重新开工,用手工编制机器码的方法完成,其中查询JMP $00001111 这样的立即数跳转机器指令花了一个小时,结果是没有找到,只好以JMP [$00001111] 这个代码代替。如果有谁知道前一种跳转指令的机

解析函数的应用

解析函数的应用 —浅谈在陌生弹性力学中的应用 (杜碧晶,运城学院数学系) 摘要:在数学中,我们知道一个复变函数如果解析,则其实部和虚部均为调和函数,满足调和方程。一个实变的双调和函数,可由共轭复变函数的线形组合得到。在平面弹性力学中,对于平面应力问题和平面应变问题,可以通过假设,转变成求解满足某些边界条件下的双调和方程问题。这样就可以用复变函数中的解析函数进行解决。 关键词:解析函数、应力函数、平面应力问题、平面应变问题。 1、引言:社会十分尊重数学,这可能不是因为这个学科的内在美,而是因为数学是社会极其需要和工程中有广泛应用的一种艺术。以复数作为自变量的函数叫做复变函数,而与之相关的理论就是复变函数论。解析函数是复变函数中具有解析(可微)性质的函数。如果一个复变函数解析,那么 它的实部和虚部均为调和函数,满足拉普拉斯调和方程(02222=??+??y x φ φ)。在区域D 内满足C —R 方 程即: x v y u y v x u ??-=????=??,的两个调和函数v u ,中,v 称为u 在区域D 内的共轭调和函数。 任何一个弹性体都是空间问题,一般的外力都是空间系,因此严格的说,任何一个实际的弹性力学问题,都是空间问题。但是所考察的弹性体具有某种特殊形状,并且承受的是某种特殊的外力,就可把空间问题简化为平面问题。这样处理后,分析和计算的工作量将大大的减少,而所得的结果仍满足工程上对精度的要求,因此具有广泛的实用价值。 弹性力学的平面问题分为平面应力问题和平面应变问题。其中平面应力问题是指很薄的等厚度薄板 只在板边上受有平行平板面并且不沿厚度变化的面力,同时体力也平行于板面并且不沿厚度变化;平面应变问题是指很长的柱形体,它的横截面在柱面上受有平行于横截面而且不沿长度变化的面力,同时体力也平行于横截面而且也不沿长度变化,即内在因素和外来作用都不沿长度而变。 2基础内容介绍

C++常数据(函数)成员精讲

C++常数据成员精讲—const关键字 更多内容:h t t p://w w w.c c t w l.c o m/ 内容提要: 用const修饰的定义对象称为常对象; 用const修饰的声明成员函数称为常成员函数; 用const修饰的声明数据成员称为常数据成员。 变量或对象被const修饰后其值不能被更新。因此被const修饰的变量或对象必须要进行初始化。 用const修饰的声明数据成员称为常数据成员。 有两种声明形式: const int cctwl; int const cctwl; int cctwl const; //这样是错误的只能有以上两种声明形式。不能省略数据类型,可以添加public private等访问控制符。 说明: 1.任何函数都不能对常数据成员赋值。 2.构造函数对常数据成员进行初始化时也只能通过初始化列表进行。 3.常数据成员在初始化时必须赋值或称其必须初始化. 4.如果类有多个默认构造函数必须都初始化常数据成员。 通过下面例子来理解常数据成员以上4点。 A、请指出下面程序的错误 class A

{ private: int w,h; const int cctwl=5; //错误一 public: }; void main() { A a ; //错误二 cout<< "sss"; system("pause"); } 错误一:不能对常数据成员在类中初始化、要通过类的构造函数,只有静态常量才能这样初始化。 错误二:没有合适的默认构造函数可用。因为有常量cctwl没有初始化必须初始化所有常数据成员。 更正后结果如下: class A{ private: int w,h; const int cctwl; public: const int cctwlcom;//常对象可以是共有私有等访问权限

如何让类的成员函数作为回调函数

如何让类的成员函数作为回调函数 为什么类(class)的成员函(member function)数不能作为回调函数(callback function) 首先来看看回调函数有怎样的特点。windows中,回调函都显式(explicit)使用CALLBACK修饰符(decorator)修饰 (decorated)。实际上CALLBACK就是_stdcall 参数传递方式(calling convention)的宏定义。MSDN中对__stdcall做了如下定义: The __stdcall calling convention is used to call Win32 API functions. The callee cleans the stack, so the compiler makes vararg functions __cdecl. Functions that use this calling convention require a function prototype. 其中心思想是,__stdcall修饰的函数,参数从右至左依次压入堆栈,被调用者(callee)负责平衡堆栈(clean also called ‘stack unwinding handling’)。 下面来看看类的成员函数有怎样的特点。在VC++中,所有类的成员函数在定义的时候都被隐式(implicit)定义为__thiscall参数传递方式。在MSDN 中对 __thiscall做了如下定义: The __thiscall calling convention is used on member functions and is the default calling convention used by C++ member functions that do not use variable arguments. Under __thiscall, the callee cleans the stack, which is impossible for vararg functions. Arguments are pushed on the stack from

CDC类的主要绘图成员函数

CDC类的主要绘图成员函数 CDC类中常用绘图函数 1)绘制像素函数 原型:COLORREF SetPixel(int x,int y,COLORREF crColor ); 设置某像素点的RGB值 2)获取像素颜色函数 原型:COLORREF GetPixel(int x,int y)const; 返回值:指定像素的RGB值。 参数说明:得到指定像素的RGB颜色值 一、画笔函数 画笔是用来绘制直线、曲线或图形的边界线,是绘图工具类之一 画笔通常具有线型、宽度和颜色三种属性 画笔的线型通常有实线、虚线、点线、点划线、双点划线、不可见线和内框架线7种,这些线型都是以PS_为前缀的预 定义标识符 默认的画笔是一个像素单位的黑色实线 要想更换画笔,可以在创建新画笔对象后,将其选入设备上下文,就可使用新画笔进行绘图。 1)创建画笔函数 原型:BOOL CreatePen(int nPenStyle,int nWidth,COLORREF crColor);

返回值:非零。 参数说明: 第一个参数nPenStyle是画笔的风格代码 第二个参数nWidth是画笔的宽度 第三个参数crColor是画笔的颜色。 PS_SOLID;实线;宽度任意指定 PS_DASH;虚线;宽度1(不可任意指定) PS_DOT;点线;宽度1(不可任意指定) PS_DASHDOT;点划线;宽度1(不可任意指定) PS_DASHDOTDOT;双点画线;宽度1(不可任意指定) PS_NULL;不可见线;宽度1(不可任意指定) PS_INSIDEFRAME;内框架线;宽度任意指定 2)选择画笔函数 原型:Cpen *SelectObject(Cpen *pPen); 返回值:被替代画笔的指针。 参数说明:参数pPen是Cpen类的被选中的新画笔对象指针。本函数把原画笔换成新画笔,同时返回指向原画笔的指针。 3)删除画笔函数 原型:BOOL DeleteObject( ); 返回值:非零。 参数说明:画笔使用完毕,把已成自由状态的画笔从系统内存中清除。 4)选择一支库画笔函数 原型: virtual CGdiObject *SelectStockObject(int nIndex); 返回值:被替代的CGdiObject类对象的指针。 参数说明:参数nIndex是库笔代码 Windows系统中准备了一些使用频率较高的画笔,不需要创建,可以直接选用。同样,使用完库画笔时也不需要调用 DeleteObject()函数从内存中删除已使用过的画笔。 三种常用库笔:BLACK_PEN宽度为1的黑笔实线笔;WHITE_PEN宽度为1的白笔实线笔;NULL_PEN透明笔 二、画刷函数(图形内部进行填充) 1)创建实体画刷函数 BOOL CreateSolidBrush(COLORREF crColor ); 选择画刷函数 2)CBrush *SelectObject(CBrush *pBrush ); 删除画刷函数 3)BOOL DeleteObject( ); 创建阴影画刷函数 4)BOOL CreateHatchBrush(int nIndex,COLORREF crColor);

成员函数中访问对象的私有成员问题

问题(知识点)描述: a.在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量。 b.在类的成员函数中可以访问同类型实例的私有变量。 c.拷贝构造函数里,可以直接访问另外一个同类对象(引用)的私有成员。 d.类的成员函数可以直接访问作为其参数的同类型对象的私有成员。 举例描述上述知识: 1).在拷贝构造函数中可以访问引用对象的私有变量:例如: class Point { public: Point(int xx=0,int yy=0){X=xx;Y=yy;} Point(Point &p); private: int X,Y; }; Point::Point (Point &p) { X=p.X; Y=p.Y; } 2).在类的成员函数中可以访问同类型实例的私有变量 class A { public: int getA() const { return a; } void setA(int val) { a = val; } void assign(A& _AA) { this->a = _AA.a; _ AA.a = 10; //可以直接访问 } void display() { cout<<"a:"< using namespace std; class TestClass { public: TestClass(int amount) { this->_amount = amount; } void UsePrivateMember() { cout<<"amount:"<_amount<

C++ string 成员函数汇总

C++ string 成员函数汇总 原址:https://www.360docs.net/doc/809647819.html,/shazi129/blog/item/c3ad059b636db8b6c9eaf490.html string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作: const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n); operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。 const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目 string的特性描述: int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const; //返回string对象中可存放的最大字符串的长度 int size()const; //返回当前字符串的大小 int length()const; //返回当前字符串的长度 bool empty()const; //当前字符串是否为空 void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。 string的赋值: string &operator=(const string &s);//把字符串s赋给当前字符串 string &assign(const char *s);//用c类型字符串s赋值 string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值 string &assign(const string &s);//把字符串s赋给当前字符串 string &assign(int n,char c);//用n个字符c赋值给当前字符串

CDC类及成员函数简介

CDC CObject └CDC CDC类定义的是设备上下文对象的类。 CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。 通过CDC对象的成员函数进行所有的绘图。 类对设备上下文操作提供了成员函数,处理绘图工具。安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。 它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。 另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。 使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows 函数的成员函数。 为了特定用途,Microsoft基本类库提供了几个CDC派生类。CPaintDC 包括BeginPaint和EndPaint调用。 CClientDC 管理窗口用户区对应的显示上下文。 CWindowDC 管理与整个窗口对应的显示上下文,包括它的结构和控件。CMetaFileDC 与带元文件的设备上下文对应。 CDC包含m_hDC和m_hAttribDC两个设备上下文,它们在CDC对象创建时参考同一个设备。 CDC指导所有对m_hDC的输出GDI调用以及对m_hAttribDC的大部分属性GDI调用(GetTextColor是属性调用的例子,而SetTextColor是一个输出调用)。例如框架使用这两个设备上下文实现CMetaFileDC对象,在从物理设备读取属性期间向元文件发送输出。 打印预览以相同风格在框架中实现。还可以以相似方法在特殊应用代码中使用这两个设备上下文。 可能多次需要来自m_hDC和m_hAttribDC设备上下文的文本度量信息。 以下几对函数提供了这项功能: 使用m_hAttribDC 使用m_hDC GetTextExtent GetOutputTextExtent GetTabbedTextExtent GetOutputTabbedTextExtent GetTextMetrics GetOutputTextMetrics GetCharWidth GetOutputCharWidth CDC类成员

成员函数

CcmdUI类中常用的成员函数及其功能描述 区域类 菜单类CMenu 1、创建菜单 CMenu类的成员函数CreateMenu和CreatePopupMenu分别用来创建普通菜单和弹出菜单,其函数原型如下: BOOL CreateMenu(); BOOL CreatePopupMenu(); 2、调用菜单 BOOL LoadMenu(LPCTSTR lpszResourceName); BOOL LoadMenu(UNIT nIDResource); 3、添加菜单项 BOOL AppendMenu(UNIT nFlags, UNIT nIDNewItem, const CBitmap*pBmp); BOOL AppendMenu(UNIT nFlags, UNIT nIDNewItem=0, LPCTSTR lpszNewItem=NULL); BOOL InsertMenu(UNIT nPosition, UNIT nFlags, UNIT nIDNewItem, const CBitmap*pBmp); BOOL InsertMenu(UNIT nPosition,UNIT nFlags,UNIT nIDNewItem=0,LPCTSTR lpszNewItem=NULL); 形参nIDNewItem为新增菜单项的ID号,lpszNewItem为新增菜单项的标题,pBmp为位图指针,nPosition为新增菜单项的插入位置,nFlags表示新增菜单项的状态信息,其取值的不同会影响其他参数的含义。

参数nFlags的取值及其含义 在菜单栏中新增菜单后,不管菜单栏所在窗口是否改变,都应该调用CWnd类的成员函数CWnd::DrawMenuBar更新菜单栏。DrawMenuBar的函数原型为void DrawMenuBar()。 4、删除菜单项 BOOL DeleteMenu(UNIT nPosition, UNIT nFlags); 在菜单栏中删除菜单后,不管菜单栏所在窗口是否改变,都应该调用CWnd类的成员函数CWnd::DrawMenuBar更新菜单栏 5、获得菜单项信息 GetMenuItemCount函数 UNIT GetMenuItemCount()const; 其功能是得到某列菜单中的菜单项数。 GetMenuItemID函数 UNIT GetMenuItemID(int nPos)const; 其功能是返回参数nPos指定位置菜单项的ID号 GetSubMenu函数 CMenu*GetSubMenu(int nPos)const; 其功能是得到指向某列菜单的指针 调用上下文菜单 BOOL TrackPopupMenu(UNIT nFlags,intx,inty, CWnd*pWnd, LPCRECT lpRect=0);

成员函数

成员函数 CDC对象的成员函数进行所有的绘图。它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。 目录 简介 注意事项 CDC类成员 编辑本段简介 CDC类中,常用的一些成员函数。 CDC CObject └CDC CDC类定义的是设备上下文对象的类。 CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。 通过CDC对象的成员函数进行所有的绘图。

类对设备上下文操作提供了成员函数,处理绘图工具。安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。 它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭圆和多边形等形状提供了成员函数。 另外还为绘制文本、处理字体,使用打印机跳转,滚动和播放元文件提供成员函数。 使用CDC对象时要构造它,然后调用与它平等的、使用设备上下文的Windows函数的成员函数。 编辑本段注意事项 Windows 95下所有屏幕坐标限制在16位以内。因此向CDC成员函数传递的int必须在-32768至32767之间。 为了特定用途,Microsoft基本类库提供了几个CDC派生类。 CPaintDC 包括BeginPaint和EndPaint调用。 CClientDC 管理窗口用户区对应的显示上下文。 CWindowDC 管理与整个窗口对应的显示上下文,包括它的结构和控件。 CMetaFileDC 与带元文件的设备上下文对应。 CDC包含m_hDC和m_hAttribDC两个设备上下文,它们在CDC对象创建时参考同一个设备。

指向类的成员函数的指针如何使用(详解).

我们首先复习一下"指向函数的指针"如何使用? void print( { } void (*pfun(; //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void pfun = print; //赋值一个指向函数的指针 (*pfun(; //使用一个指向函数的指针 比较简单,不是吗?为什么*pfun 需要用(扩起来呢?因为*的运算符优先级比(低,如果不用(就成了*(pfun(. 指向类的成员函数的指针不过多了一个类的限定而已! class A { void speak(char *, const char *; }; void main( { A a; void (A::*pmf(char *, const char *;//指针的声明 pmf = &A::speak; //指针的赋值 } 一个指向类 A 成员函数的指针声明为: void (A::*pmf(char *, const char *;

声明的解释是:pmf 是一个指向 A 成员函数的指针,返回无类型值,函数带有二个参 数,参数的类型分别是 char *和 const char *。除了在星号前增加 A::,与声明外部函数指针的方法一样。一种更加高明的方法是使用类型定义: 例如,下面的语句定义了 PMA 是一个指向 A 成员函数的指针,函数返回无类型值,函数参数类型为 char *和 const char *: typedef void(A::*PMA(char *, const char *; PMA pmf= &A::strcat; // pmf 是 PMF 类型(类 A 成员指针的变量 下面请看关于类的使用的示例程序! #include using namespace std; class Person { public: /*这里稍稍注意一下,我将speak(函数设置为普通的成员函数,而 hello(函数设置为虚函数*/ int value; void speak( { cout<<"I am a person!"<

mfc常用类及其成员函数.doc

MFC常用类及其成员函数 2009-08-26 16:06 CRuntimeClass 结构 在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派牛关系判断等成员函数。每一个从CObject 类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行吋得到对象的信息或基类的信息。 要使用CRuntimeClass结构,必须结合使用RUNTIME.CLASS()宏和其他有关运行时类型识别的MFC宏。 CCmdTarget 类 (1)消息发送 MFC应用程序为每个CCmdTarget派生类创建一个称为消息映射表的静态数据结构,可将消息映射到对象所对应的消息处理函数上。 (2)设置光标 BeginWaitCursor ()将光标改为沙漏形状; EndWaitCursor () 将光标改冋到之前的形状; RestoreWaitCursor ()用于将光标还原为等待状态。 (3)支持自动化 CCmdTarget类支持程序通过COM接口进行交互操作,自动翻译COM接口的方法。 CWinThread 类 由CCmdTarget派生,主要工作是创建和处理消息循环。 CWinApp 类 从CWinThread 类派生,成员函数InitApplication()、Initlnstance()、Run()。 在TniLTnstanceO函数中,创建了一个单文档模板类或多文档模板类(CDocTemplate)的对象,并且在文档模板的构造函数屮,系统定义的宏RUNT1ME.CLASS 创建了文档类对象,框架窗口类对象和视图类对象. 在MFC应用程序中有且仅有一个CWinApp派生类的对象,代表程序运行的主 线程,代表应用程序本身。

解析函数柯西黎曼方程

1 引言 解析函数是复变函数论研究的主要对象.Cauchy-Riemann方程则是判断复变函数可微和解析的主要条件,它在复变函数论中的重要作用和地位是不言而喻的.文献[1]、[2]提到函数可微、解析定义及满足它们的一些条件,文献[3]、[4]、[5]给出几种Cauchy-Riemann 方程等价形式. 现在对解析函数Cauchy-Riemann方程研究的文章非常的多,这些文章已经将它们证明研究得比较深刻,但对它们作出全面的概括和总结这方面的工作还是不多,至于应用也很少提到.所以对它的进一步研究和总结还是有其积极意义的. 本文先介绍可微、解析定义,给出解析函数满足Cauchy-Riemann方程,再给出几种Cauchy-Riemann方程的等价形式.

2 基本概念与定理 定义2.1 [1] 设函数()w f z =定义于区域D , 0z D ∈.如果极限 000 ()() lim z z z D f z f z z z →∈-- 存在,则称()f z 在0z 点可导或可微,其极限值称为函数()f z 在0z 点的导数,记为0'()f z 或 (z z df z dz =) .即 000 ()() lim '()z z f z f z f z z z →-=-. 有了函数在一点可微的概念以后,下面我们引进复变函数的一个主要概念——解析函数. 定义2.2 [1] 如果函数()w f z =在区域D 内每一点都可微,则称()f z 在D 内解析, 并称()f z 是区域D 内的解析函数. 如果函数()f z 在0z 的某一邻域内解析,则称()f z 在0z 点解析.而函数()f z 在闭区域D 上解析,即存在区域G ,使D G ?,而()f z 在G 内解析. 若在区域D 内除了可能有些例外点外,函数()f z 在D 内其它各点都解析,则这些例外点称为()f z 的奇点. 例1 试证明(Re f z z z =) 在0z =点可微,但在z 平面上任何点都不解析. 证: 先证(f z )在0z =点可微.因 0 00()(0)Re lim lim lim Re 00z z z f z f z z z z z →→→-===- 故(f z )在0z =点可微,且'(0)0f =. 设00z ≠,令000z x iy =+,则0x ,0y 至少有一个不为零.又令z x iy =+,考虑极限

分享某人的C++指向类成员函数的指针

C++指向类成员函数的指针 最近在开发中用到了函数指针,于是想整理了一下有关函数指针的概念。O(∩_∩)O~ 首先函数指针是指向一组同类型的函数的指针;而类成员函数我们也可以相似的认为,它是指向同类中同一组类型的成员函数的指针,当然这里的成员函数更准确的讲应该是指非静态的成员函数。前者是直接指向函数地址的,而后者我们从字面上也可以知道它肯定是跟类和对象有着关系的。 函数指针实例: typedef int (*p)(int,int);//定义一个接受两个int型且返回int型变量的函数指针类型 int func(int x,int y) { printf("func:x=%d,y=%d/n",x,y); return (x

p fun=&A::func; A a; //因为成员函数地址的解引用必须要附驻与某个对象的地址,所以我们必须创建某个对象。cout<<"min:"<<(a.*fun)(4,5)< #include #include using namespace std; class A { public: int func1(int x,int y) { printf("A::func:x=%d,y=%d/n",x,y); return (xy?x:y); } }; class B:public A { public: virtual int func2(int x,int y) { printf("B::func:x=%d,y=%d/n",x,y); return (x+y); }

相关文档
最新文档