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

📄 关键字static总结之二.htm

📁 我收集的一些C++BUILDER编程用的知识,适合于初学者使用
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt"><FONT 
            size=3><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>int<SPAN 
            style="mso-spacerun: yes">&nbsp; 
            </SPAN>g_size;<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-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN 
            style="mso-spacerun: yes">&nbsp;</SPAN>const char* 
            in_modulename;<o:p></o:p></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><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>class Global<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>private:<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-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>static bool s_flag_;<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-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>static int<SPAN style="mso-spacerun: yes">&nbsp; 
            </SPAN>s_size_;<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-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>static const char* 
            s_in_modulename_;<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>private:<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-spacerun: yes">&nbsp;&nbsp;&nbsp; 
            </SPAN>Global();//私有的构造函数,使类不能实例化<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-spacerun: yes">&nbsp;&nbsp;&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>public:<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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>static void setFlag(bool flag){ s_flag_ = flag; 
            }<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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>static void setSize(int size) { s_size_ = size; 
            }<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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>static void setInmodulename(const char* in_modulename){ 
            s_in_modulename_ = in_modulename; }<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"><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><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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-spacerun: yes">&nbsp;&nbsp; </SPAN><SPAN 
            style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;</SPAN>static int 
            getFlag() { return s_flag_; }<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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>static int getSize() { return s_size_; 
            }<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-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN>static const char* getInmodulename() { return 
            s_in_modulename_; }<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 
            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 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>4.</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-ALIGN: left; mso-layout-grid-align: none" 
            align=left><FONT size=3><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">如果你让对象</SPAN><SPAN 
            lang=EN-US>A</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">必须在对象</SPAN><SPAN 
            lang=EN-US>B</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">之前初始化,同时又让</SPAN><SPAN 
            lang=EN-US>A</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">的初始化依赖于</SPAN><SPAN 
            lang=EN-US>B</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">已经被初始化</SPAN><SPAN 
            lang=EN-US>,</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">同是</SPAN><SPAN 
            lang=EN-US>A,B</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">又在不同的编译单元,<FONT 
            id=fummmlqflcijrrsdps>r,;cb6J=}&amp;专:提CP件Th</FONT>这是我们就无法控制正确的初始化顺序,解决办法还是有的(<B 
            style="mso-bidi-font-weight: normal">注,以下直入引用《</B></SPAN><B 
            style="mso-bidi-font-weight: normal"><SPAN lang=EN-US>think in 
            C++</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">》的一段例子,由于是总结,拷贝一段没问题吧</SPAN></B><B 
            style="mso-bidi-font-weight: normal"><SPAN lang=EN-US 
            style="FONT-FAMILY: Wingdings; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN 
            style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN></B><SPAN 
            style="FONT-FAMILY: 宋体; mso-hansi-font-family: ''''Times New Roman''''; mso-ascii-font-family: ''''Times New Roman''''">)</SPAN><SPAN 
            lang=EN-US>,</SPAN></FONT><SPAN lang=EN-US 
            style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt"> 
            <o:p></o:p></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none" 
            align=left><FONT size=3><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt">这时我们可用由</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">Jerry 
            Schwarz</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt">在创建</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">i 
            o s t r e a m</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt">库(因为</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">c 
            i n , c o u t</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt">和</SPAN><SPAN 
            lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">c 
            e r r</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt">的定义是在不同的文件中)时提供的一种技术。这一技术要求在库头文件中加上一个额外的类。这个类负责库中静态对象的动态初始化。下面是一个简单的例子:<SPAN 
            lang=EN-US><o:p></o:p></SPAN></SPAN></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-layout-grid-align: none" 
            align=left><SPAN lang=EN-US 
            style="FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: 仿宋_GB2312; mso-font-kerning: 0pt"><FONT 
            size=3>//DEPEND.H – Static initialization 
            technique<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>#ifndef DEPEND_H_<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>#define DEPEND_H_<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>#include &lt;iostream.h&gt;<o:p></o:p></FONT></SPAN></P>
            <P class=MsoNormal style="MARG

⌨️ 快捷键说明

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