亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ch10.htm

?? good book for learning c++ standard language
?? HTM
?? 第 1 頁 / 共 5 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>

<HEAD>
<!-- This document was created from RTF source by rtftohtml version 3.0.1 -->

	<META NAME="GENERATOR" Content="Symantec Visual Page 1.0">
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
	<TITLE>Teach Yourself C++ in 21 Days</TITLE>
</HEAD>

<BODY TEXT="#000000" BGCOLOR="#FFFFFF">

<H1 ALIGN="CENTER"><A HREF="ch09.htm" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/htm/ch09.htm"><IMG SRC="../buttons/BLANPREV.GIF" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/buttons/BLANPREV.GIF"
WIDTH="37" HEIGHT="37" ALIGN="BOTTOM" BORDER="0"></A><A HREF="javascript:if(confirm('http://www.mcp.com/sams  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.mcp.com/sams'" tppabs="http://www.mcp.com/sams"><IMG
SRC="../buttons/BLANHOME.GIF" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/buttons/BLANHOME.GIF" WIDTH="37" HEIGHT="37" ALIGN="BOTTOM"
BORDER="0"></A><A HREF="../index.htm" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/index.htm"><IMG SRC="../buttons/BLANTOC.GIF" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/buttons/BLANTOC.GIF"
WIDTH="37" HEIGHT="37" ALIGN="BOTTOM" BORDER="0"></A><A HREF="ch11.htm" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/htm/ch11.htm"><IMG SRC="../buttons/BLANNEXT.GIF" tppabs="http://petunia.atomki.hu/pio/Manuals/english/0-672/0-672-31070-8/buttons/BLANNEXT.GIF"
WIDTH="37" HEIGHT="37" ALIGN="BOTTOM" BORDER="0"></A></H1>
<H1></H1>

<UL>
	<LI><A HREF="#Heading1">Day 10</A>
	<UL>
		<LI><A HREF="#Heading2">Advanced Functions</A>
		<UL>
			<LI><A HREF="#Heading3">Overloaded Member Functions</A>
			<LI><A HREF="#Heading4">Listing 10.1. Overloading member functions</A><A HREF="#Heading5">.</A>
			<LI><A HREF="#Heading6">Using Default Values</A>
			<LI><A HREF="#Heading7">Listing 10.2. Using default values</A><A HREF="#Heading8">.</A>
			<LI><A HREF="#Heading9">Choosing Between Default Values and Overloaded Functions</A>
			<LI><A HREF="#Heading10">The Default Constructor</A>
			<LI><A HREF="#Heading11">Overloading Constructors</A>
			<LI><A HREF="#Heading12">Listing 10.3. Overloading the constructor</A><A HREF="#Heading13">.</A>
			<LI><A HREF="#Heading14">Initializing Objects</A>
			<LI><A HREF="#Heading15">Listing 10.4. A code snippet showing initialization of member
			variables</A><A HREF="#Heading16">.</A>
			<LI><A HREF="#Heading17">The Copy Constructor</A>
			<UL>
				<LI><A HREF="#Heading18">Figure 10.1.</A>
				<LI><A HREF="#Heading19">Figure 10.2.</A>
			</UL>
			<LI><A HREF="#Heading20">Listing 10.5. Copy constructors</A><A HREF="#Heading21">.</A>
			<UL>
				<LI><A HREF="#Heading22">Figure 10.3.</A>
			</UL>
			<LI><A HREF="#Heading23">Operator Overloading</A>
			<LI><A HREF="#Heading24">Listing 10.6. The Counter class</A><A HREF="#Heading25">.</A>
			<UL>
				<LI><A HREF="#Heading26">Writing an Increment Function</A>
			</UL>
			<LI><A HREF="#Heading27">Listing 10.7. Adding an increment operator</A><A HREF="#Heading28">.</A>
			<UL>
				<LI><A HREF="#Heading29">Overloading the Prefix Operator</A>
			</UL>
			<LI><A HREF="#Heading30">Listing 10.8. Overloading operator</A><A HREF="#Heading31">++.</A>
			<UL>
				<LI><A HREF="#Heading32">Returning Types in Overloaded Operator Functions</A>
			</UL>
			<LI><A HREF="#Heading33">Listing 10.9. Returning a temporary object</A><A HREF="#Heading34">.</A>
			<UL>
				<LI><A HREF="#Heading35">Returning Nameless Temporaries</A>
			</UL>
			<LI><A HREF="#Heading36">Listing 10.10. Returning a nameless temporary object</A><A
			HREF="#Heading37">.</A>
			<UL>
				<LI><A HREF="#Heading38">Using the this Pointer</A>
			</UL>
			<LI><A HREF="#Heading39">Listing 10.11. Returning the this pointer</A><A HREF="#Heading40">.</A>
			<UL>
				<LI><A HREF="#Heading41">Overloading the Postfix Operator</A>
				<LI><A HREF="#Heading42">Difference Between Prefix and Postfix</A>
			</UL>
			<LI><A HREF="#Heading43">Listing 10.12. Prefix and postfix operators</A><A HREF="#Heading44">.</A>
			<LI><A HREF="#Heading45">Operator Overloading Unary Operators</A>
			<UL>
				<LI><A HREF="#Heading46">The Addition Operator</A>
			</UL>
			<LI><A HREF="#Heading47">Listing 10.13. The Add() function</A><A HREF="#Heading48">.</A>
			<UL>
				<LI><A HREF="#Heading49">Overloading operator+</A>
			</UL>
			<LI><A HREF="#Heading50">Listing 10.14. operator</A><A HREF="#Heading51">+.</A>
			<LI><A HREF="#Heading52">Operator Overloading: Binary Operators</A>
			<UL>
				<LI><A HREF="#Heading53">Issues in Operator Overloading</A>
				<LI><A HREF="#Heading54">Limitations on Operator Overloading</A>
				<LI><A HREF="#Heading55">What to Overload</A>
				<LI><A HREF="#Heading56">The Assignment Operator</A>
			</UL>
			<LI><A HREF="#Heading57">Listing 10.15. An assignment operator</A><A HREF="#Heading58">.</A>
			<LI><A HREF="#Heading59">Conversion Operators</A>
			<LI><A HREF="#Heading60">Listing 10.16. Attempting to assign a Counter to a USHORT</A><A
			HREF="#Heading61">.</A>
			<LI><A HREF="#Heading62">Listing 10.17. Converting USHORT to Counter</A><A HREF="#Heading63">.</A>
			<UL>
				<LI><A HREF="#Heading64">Conversion Operators</A>
			</UL>
			<LI><A HREF="#Heading65">Listing 10.18. Converting from Counter to unsigned short().</A>
			<LI><A HREF="#Heading66">Summary</A>
			<LI><A HREF="#Heading67">Q&amp;A</A>
			<LI><A HREF="#Heading68">Workshop</A>
			<UL>
				<LI><A HREF="#Heading69">Quiz</A>
				<LI><A HREF="#Heading70">Exercises</A>
			</UL>
		</UL>
	</UL>
</UL>

<P>
<HR SIZE="4">

<H2 ALIGN="CENTER"><A NAME="Heading1"></A><FONT COLOR="#000077">Day 10</FONT></H2>
<H2 ALIGN="CENTER"><A NAME="Heading2"></A><FONT COLOR="#000077">Advanced Functions</FONT></H2>
<P>On Day 5, &quot;Functions,&quot; you learned the fundamentals of working with
functions. Now that you know how pointers and references work, there is more you
can do with functions. Today you learn

<UL>
	<LI>How to overload member functions.
	<P>
	<LI>How to overload operators.
	<P>
	<LI>How to write functions to support classes with dynamically allocated variables.
</UL>

<H3 ALIGN="CENTER"><A NAME="Heading3"></A><FONT COLOR="#000077">Overloaded Member
Functions</FONT></H3>
<P>On Day 5, you learned how to implement function polymorphism, or function overloading,
by writing two or more functions with the same name but with different parameters.
Class member functions can be overloaded as well, in much the same way.</P>
<P>The <TT>Rectangle</TT> class, demonstrated in Listing 10.1, has two <TT>DrawShape()</TT>
functions. One, which takes no parameters, draws the <TT>Rectangle</TT> based on
the class's current values. The other takes two values, <TT>width</TT> and <TT>length</TT>,
and draws the rectangle based on those values, ignoring the current class values.</P>
<P><A NAME="Heading4"></A><FONT SIZE="4" COLOR="#000077"><B>Listing 10.1. Overloading
member functions.</B></FONT></P>
<PRE><FONT COLOR="#0066FF">
1:     //Listing 10.1 Overloading class member functions
2:     #include &lt;iostream.h&gt;
3:
4:     typedef unsigned short int USHORT;
5:     enum BOOL { FALSE, TRUE};
6:
7:     // Rectangle class declaration
8:     class Rectangle
9:     {
10:    public:
11:       // constructors
12:       Rectangle(USHORT width, USHORT height);
13:       ~Rectangle(){}
14:
15:       // overloaded class function DrawShape
16:       void DrawShape() const;
17:       void DrawShape(USHORT aWidth, USHORT aHeight) const;
18:
19:    private:
20:       USHORT itsWidth;
21:       USHORT itsHeight;
22:    };
23:
24:    //Constructor implementation
25:    Rectangle::Rectangle(USHORT width, USHORT height)
26:    {
27:       itsWidth = width;
28:       itsHeight = height;
29:    }
30:
31:
32:    // Overloaded DrawShape - takes no values
33:    // Draws based on current class member values
34:    void Rectangle::DrawShape() const
35:    {
36:        DrawShape( itsWidth, itsHeight);
37:    }
38:
39:
40:    // overloaded DrawShape - takes two values
41:    // draws shape based on the parameters
42:    void Rectangle::DrawShape(USHORT width, USHORT height) const
43:    {
44:       for (USHORT i = 0; i&lt;height; i++)
45:       {
46:          for (USHORT j = 0; j&lt; width; j++)
47:          {
48:             cout &lt;&lt; &quot;*&quot;;
49:          }
50:          cout &lt;&lt; &quot;\n&quot;;
51:       }
52:    }
53:
54:    // Driver program to demonstrate overloaded functions
55:    int main()
56:    {
57:       // initialize a rectangle to 30,5
58:       Rectangle theRect(30,5);
59:       cout &lt;&lt; &quot;DrawShape(): \n&quot;;
60:       theRect.DrawShape();
61:       cout &lt;&lt; &quot;\nDrawShape(40,2): \n&quot;;
62:       theRect.DrawShape(40,2);
63:     return 0;
<TT>64: }</TT></FONT></PRE>


<BLOCKQUOTE>
	<P>
<HR>
<FONT COLOR="#000077"><B>NOTE:</B></FONT><B> </B>This listing passes <TT>width</TT>
	and <TT>height</TT> values to several functions. You should note that sometimes <TT>width</TT>
	is passed first and at other times <TT>height</TT> is passed first. 
<HR>


</BLOCKQUOTE>

<PRE><FONT COLOR="#0066FF">Output: DrawShape():
******************************
******************************
******************************
******************************
******************************

DrawShape(40,2):
************************************************************
************************************************************
</FONT></PRE>
<P><FONT COLOR="#000077"><B>Analysis:</B></FONT><B> </B>Listing 10.1 represents a
stripped-down version of the Week in Review project from Week 1. The test for illegal
values has been taken out to save room, as have some of the accessor functions. The
main program has been stripped down to a simple driver program, rather than a menu.<BR>
<BR>
The important code, however, is on lines 16 and 17, where <TT>DrawShape()</TT> is
overloaded. The implementation for these overloaded class methods is on lines 32-52.
Note that the version of <TT>DrawShape()</TT> that takes no parameters simply calls
the version that takes two parameters, passing in the current member variables. Try
very hard to avoid duplicating code in two functions. Otherwise, keeping them in
sync when changes are made to one or the other will be difficult and error-prone.</P>
<P>The driver program, on lines 54-64, creates a rectangle object and then calls
<TT>DrawShape()</TT>, first passing in no parameters, and then passing in two <TT>unsigned
short</TT> integers.</P>
<P>The compiler decides which method to call based on the number and type of parameters
entered. One can imagine a third overloaded function named <TT>DrawShape()</TT> that
takes one dimension and an enumeration for whether it is the width or height, at
the user's choice.
<H3 ALIGN="CENTER"><A NAME="Heading6"></A><FONT COLOR="#000077">Using Default Values</FONT></H3>
<P>Just as non-class functions can have one or more default values, so can each member
function of a class. The same rules apply for declaring the default values, as illustrated
in Listing 10.2.
<H3 ALIGN="CENTER"></H3>
<P><A NAME="Heading7"></A><FONT SIZE="4" COLOR="#000077"><B>Listing 10.2. Using default
values.</B></FONT></P>
<PRE><FONT COLOR="#0066FF">
1:     //Listing 10.2 Default values in member functions
2:     #include &lt;iostream.h&gt;
3:
4:     typedef unsigned short int USHORT;
5:     enum BOOL { FALSE, TRUE};
6:
7:     // Rectangle class declaration
8:     class Rectangle
9:     {
10:    public:
11:       // constructors
12:       Rectangle(USHORT width, USHORT height);
13:       ~Rectangle(){}
14:       void DrawShape(USHORT aWidth, USHORT aHeight, BOOL UseCurrentVals =  &#194;                  FALSE) const;
15:
16:    private:
17:       USHORT itsWidth;
18:       USHORT itsHeight;
19:    };
20:
21:    //Constructor implementation
22:    Rectangle::Rectangle(USHORT width, USHORT height):
23:    itsWidth(width),       // initializations
24:    itsHeight(height)
25:    {}                     // empty body
26:
27:
28:    // default values used for third parameter
29:    void Rectangle::DrawShape(
30:       USHORT width,
31:       USHORT height,
32:       BOOL UseCurrentValue
33:       ) const
34:    {
35:       int printWidth;
36:       int printHeight;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频中文字幕一区二区| 国产三级欧美三级| 成人黄色在线网站| 久久成人免费电影| 九一久久久久久| 久久狠狠亚洲综合| 韩国三级电影一区二区| 激情欧美一区二区| 国产乱人伦精品一区二区在线观看| 男男视频亚洲欧美| 极品少妇xxxx偷拍精品少妇| 狠狠狠色丁香婷婷综合久久五月| 久久99精品久久久| 国产寡妇亲子伦一区二区| 国产成人在线看| 99久久er热在这里只有精品15 | 国产日韩欧美在线一区| 精品视频一区二区不卡| 欧美色图12p| 538prom精品视频线放| 欧美一级视频精品观看| 久久久噜噜噜久噜久久综合| 欧美国产日韩精品免费观看| 亚洲人成网站精品片在线观看| 一区二区三区中文字幕| 日韩二区在线观看| 国产久卡久卡久卡久卡视频精品| av一区二区三区四区| 欧美精品乱码久久久久久| 精品91自产拍在线观看一区| 中文字幕乱码亚洲精品一区| 亚洲一区免费在线观看| 麻豆91精品视频| 波多野洁衣一区| 欧美精品久久久久久久多人混战| 久久一区二区视频| 亚洲一区视频在线| 国产资源在线一区| 欧美在线观看一二区| 精品国产乱码久久久久久久久| 亚洲天堂久久久久久久| 久久精品久久99精品久久| 91视视频在线观看入口直接观看www| 欧美性感一区二区三区| 国产性天天综合网| 日本vs亚洲vs韩国一区三区二区 | 国产精品视频观看| 首页综合国产亚洲丝袜| 9色porny自拍视频一区二区| 日韩午夜小视频| 亚洲免费观看在线视频| 国产一区二区剧情av在线| 欧美另类高清zo欧美| 中文字幕的久久| 国产精品中文字幕日韩精品| 欧美一区二区三区在线看| 最近中文字幕一区二区三区| 国产一区二区三区观看| 91精品国产综合久久久久| 亚洲精品v日韩精品| 国产乱国产乱300精品| 日韩欧美电影在线| 日韩二区三区在线观看| 欧美三级韩国三级日本三斤| 亚洲人被黑人高潮完整版| 丁香婷婷综合色啪| 国产片一区二区三区| 老司机一区二区| 日韩一级二级三级精品视频| 午夜精品久久久久久久久| 欧美日韩在线播| 亚洲国产wwwccc36天堂| 在线精品视频一区二区三四| 中文字幕精品综合| 国产成人精品一区二区三区网站观看| 日韩免费高清视频| 久久国产日韩欧美精品| 精品日产卡一卡二卡麻豆| 美女网站色91| 久久一区二区三区四区| 国产99久久久国产精品| 中文字幕成人av| 91亚洲精品乱码久久久久久蜜桃 | 欧美日韩激情在线| 亚洲成人精品在线观看| 欧美肥妇毛茸茸| 美国三级日本三级久久99| 日韩精品一区二区在线| 国产一区二区三区观看| 欧美激情资源网| 一本到三区不卡视频| 亚洲精品欧美在线| 欧美久久久久免费| 国产一区二区三区四区在线观看| 久久久噜噜噜久噜久久综合| 成人黄色a**站在线观看| 又紧又大又爽精品一区二区| 欧美日韩在线三级| 久久99精品久久只有精品| 久久久久久99精品| 色综合天天综合狠狠| 丝袜国产日韩另类美女| 26uuu另类欧美| 91美女片黄在线观看91美女| 五月天亚洲精品| 国产日韩一级二级三级| 色诱视频网站一区| 久久国产麻豆精品| 国产精品视频一区二区三区不卡| 在线视频中文字幕一区二区| 精品一区二区免费| 亚洲一区二区三区在线| 久久综合色婷婷| 欧美综合亚洲图片综合区| 久久成人免费日本黄色| 亚洲麻豆国产自偷在线| 欧美变态凌虐bdsm| 色天天综合久久久久综合片| 久久国产精品一区二区| 亚洲激情一二三区| 久久综合久久综合久久综合| 欧洲一区二区三区在线| 国产精一区二区三区| 日日欢夜夜爽一区| 亚洲免费伊人电影| 国产日韩欧美激情| 日韩三级在线观看| 日本乱码高清不卡字幕| 国产aⅴ精品一区二区三区色成熟| 亚洲成人动漫av| 亚洲精品一二三区| 中文字幕av免费专区久久| 3atv一区二区三区| 欧美一a一片一级一片| 成人毛片视频在线观看| 国产一区二区福利| 久久草av在线| 日本成人在线不卡视频| 亚洲综合精品久久| 一区二区三区在线视频播放| 国产精品视频yy9299一区| 久久视频一区二区| 精品入口麻豆88视频| 欧美一区二区视频免费观看| 欧美日韩一区二区在线视频| 色屁屁一区二区| 色悠久久久久综合欧美99| 国产91对白在线观看九色| 国产美女一区二区三区| 国产一区欧美一区| 久久不见久久见免费视频1| 美女免费视频一区二区| 亚洲精品在线一区二区| 欧美日韩中文一区| 欧美日韩一区二区三区在线看| 91理论电影在线观看| 91美女视频网站| 欧美在线看片a免费观看| 91福利国产精品| 欧美日韩综合在线免费观看| 在线观看视频一区| 欧美日韩国产a| 日韩久久久精品| 久久综合狠狠综合久久激情| 亚洲六月丁香色婷婷综合久久| 国产精品免费久久| 亚洲男女毛片无遮挡| 一区二区三区国产精华| 亚欧色一区w666天堂| 日韩国产欧美在线观看| 精油按摩中文字幕久久| 国产一区二区看久久| 白白色 亚洲乱淫| 欧美性做爰猛烈叫床潮| 制服丝袜亚洲播放| 久久精品一区四区| 亚洲精品一二三| 日本成人在线一区| 成人综合婷婷国产精品久久蜜臀| www.欧美亚洲| 欧美人伦禁忌dvd放荡欲情| 久久综合狠狠综合久久综合88| 欧美国产激情二区三区| 亚洲地区一二三色| 国产精品123| 欧美性视频一区二区三区| 精品国产在天天线2019| 亚洲女与黑人做爰| 精品一区中文字幕| 91黄色免费网站| 国产亚洲成av人在线观看导航| 亚洲视频免费观看| 精品一区免费av| 91国偷自产一区二区开放时间 | 成人免费看黄yyy456| 欧美三级电影网| 国产精品久久久久久久久免费相片 | 7777精品久久久大香线蕉 | 在线观看不卡视频| 日韩欧美美女一区二区三区|