⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csdn_文档中心_关键字static总结第一次在csdn写的,请大家指点点(错误和不足)之二.htm

📁 csdn10年中间经典帖子
💻 HTM
📖 第 1 页 / 共 5 页
字号:
          <TD><B>&nbsp;&nbsp;&nbsp;&nbsp;关键字static总结&lt;第一次在CSDN写的,请大家指点点(错误和不足)&gt;之二</B>&nbsp;&nbsp;&nbsp;&nbsp;cgsw12345(原作) 
          </TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR>
        <TR>
          <TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
          <TD 
            width=500>&nbsp;&nbsp;&nbsp;&nbsp;static,静态局部变量(对象),静态全局变量(对象),静态函数(静态全局函数),静态成员变量(对象),静态成员函数</TD></TR>
        <TR>
          <TD align=middle height=5></TD>
          <TD align=middle width=500></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
      <TABLE border=0 width=600>
        <TBODY>
        <TR>
          <TD align=left><BR>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>三:静态(<SPAN lang=EN-US>static)几个典型的应用:<?xml:namespace prefix = 
            o ns = "urn:schemas-microsoft-com:office:office" 
            /><o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体"><SPAN 
            style="mso-list: Ignore"><FONT size=3>1.</FONT><SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>代替<SPAN lang=EN-US>menu的作用(menu 
            hank)<o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>大家都知道如果程序要在,要在类定义的内部直接初始化变量并使用对于以夜的编译器只能使用<SPAN 
            lang=EN-US>menu来达到这种效果,代码像这样:<o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN 
            style="mso-tab-count: 4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>class print<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>{<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN 
            style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>menu{count = 10 };//借助枚举来得到一个初始值<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN 
            style="mso-tab-count: 3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>string info[count];<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 63pt; TEXT-INDENT: 21pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>};<SPAN style="mso-tab-count: 1">&nbsp; 
            </SPAN><o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN 
            style="mso-tab-count: 2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>用MFC编写过程序代码的都应该知道这个功能,它就是通过menu来接初始化类中的IDD然后进行使用,看一面一段MFC产生的代码<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>///////////////////////////////////////////////////////////////////////<o:p></o:p></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><FONT 
            size=3><SPAN lang=EN-US 
            style="COLOR: blue; FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">class</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"> 
            CACETESTDlg : <SPAN style="COLOR: blue">public</SPAN> 
            CDialog<o:p></o:p></SPAN></FONT></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>{<o:p></o:p></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><FONT 
            size=3><SPAN lang=EN-US 
            style="COLOR: blue; FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">public</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">:<o:p></o:p></SPAN></FONT></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><FONT 
            size=3><SPAN lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><SPAN 
            style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>//</SPAN><SPAN 
            lang=EN-US 
            style="mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-fareast-font-family: 新宋体; mso-ascii-font-family: 新宋体">……</SPAN><SPAN 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">其它成员函数和构造函数的定义<SPAN 
            lang=EN-US style="COLOR: green"><o:p></o:p></SPAN></SPAN></FONT></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; TEXT-INDENT: 21pt; mso-layout-grid-align: none; mso-char-indent-count: 2.0"><SPAN 
            lang=EN-US 
            style="COLOR: green; FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>// 对话框数据<o:p></o:p></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; 
            </SPAN><SPAN style="COLOR: blue">enum</SPAN> { IDD = 
            IDD_ACETEST_DIALOG };<SPAN style="COLOR: green"> 
            //使用menu直接初始化IDD,IDD_ACETEST_DIALOG是对话框的ID值</SPAN><o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><SPAN 
            style="mso-spacerun: yes">&nbsp; </SPAN>//</SPAN><SPAN lang=EN-US 
            style="mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-fareast-font-family: 新宋体; mso-ascii-font-family: 新宋体">……</SPAN><SPAN 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'">其他成员函数的定义。<SPAN 
            lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>};<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><o:p><FONT 
            size=3>&nbsp;</FONT></o:p></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>//实现文件<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>//……<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>CACETESTDlg::CACETESTDlg(CWnd* pParent <SPAN 
            style="COLOR: green">/*=NULL*/</SPAN>)<o:p></o:p></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; </SPAN>: 
            CDialog(CACETESTDlg::IDD, pParent)<SPAN 
            style="COLOR: green">//注:这里直接使用IDD初始化基类。<o:p></o:p></SPAN></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>{<o:p></o:p></FONT></SPAN></P>
            <P align=left class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3><SPAN style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp; 
            </SPAN>m_hIcon = 
            AfxGetApp()-&gt;LoadIcon(IDR_MAINFRAME);<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 新宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-hansi-font-family: 'Times New Roman'"><FONT 
            size=3>}<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>//……<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>////////////////////////////////////////////////////////////////////////////<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; tab-stops: right 415.3pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>上面这种直接初始并使用的功能是借助<SPAN 
            lang=EN-US>menu来实现的。但这有个不好之处就是使menu在这里丧失了本来的作用(menu本身的功能没有得到体现)但有了static之后可以在一个类中使用static常量来达到同样的效果,因为一个类的静态常量被当作一个编译时的常量,而又因为静态具有文件作用域的内部连接,所以不会产生重复定义的冲突。其代码示例在介绍静态成员变量(对象)时已经给出。<o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; tab-stops: right 415.3pt"><SPAN 
            lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>不知道大家有不有注意,menu只能使用整型,但类内部静态常量可以是任何类型,甚至抱用户自定义类型。<SPAN 
            style="mso-tab-count: 1"> </SPAN><o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 39pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo1; tab-stops: list 39.0pt"><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 宋体"><SPAN 
            style="mso-list: Ignore"><FONT size=3>2.</FONT><SPAN 
            style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>单件模式<SPAN lang=EN-US><o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3>相大家都知道单件模式吧,如果不熟悉可以参考相产模式的书籍,单件模式保证一个类仅有一个实例存在<SPAN 
            lang=EN-US>,具体就是通过静态成员变量和静态成员函数以及类的访问层次相结合而实现的,具体代码如下:<o:p></o:p></SPAN></FONT></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><SPAN 
            lang=EN-US style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -