1. 程式人生 > >實驗3 類和物件

實驗3 類和物件

    本次實驗主要圍繞類和物件,按照課本所述類是一種抽象機制,用於描述一類事物的共同屬性和行為,物件則是該類的某一特定實體或者例項,初次聽這些描述其實比較晦澀,看到例項就比較易懂了,C++中的類和C語言中的結構體從形式上看很像,但是還含有結構體沒有的內容,類中有外部介面和私有資料成員,私有資料成員是不能從外部進行訪問的,而結構體成員卻可以被任意修改。這就涉及到類的封裝,他是資料與演算法的結合,從而構成一個整體,這個整體之中一些成員受到保護,有效地防止了資料被胡亂修改,還有一部分是公共的,用於與外部連線。      建構函式和解構函式使得類物件的建立和撤銷變得簡單,沒有建構函式,類的物件很複雜,編譯器很難實現其初始化,解構函式能撤銷建立的物件,做善後工作,它沒有返回值,且不接受任何引數,建構函式和解構函式當自己沒有編寫時,編譯器都會自動生成隱含的建構函式和解構函式。
本次試驗內容如下:1、定義並實現一個矩形類,有長、寬兩個屬性,由成員函式計算矩形的面積。
#include<iostream>
#include<iomanip>
using namespace std;

class Rectangle
{
	public:                              //外部介面 
		Rectangle(float l,float w);      //建構函式
		float area();                    //函式用於計算矩形的面積
	private:                             //私有資料成員 
		float length;                    //長 
		float width;                     //寬 
};

//類的實現
//建構函式初始化資料成員
Rectangle::Rectangle(float l,float w)
{
	length=l;
	width=w;
}

//計算面積
float Rectangle::area()
{
	return (length*width);
}

//主函式實現 
int main()
{
	float l,w;
	//提示使用者輸入長和寬
	cout<<"Enter the length and width of the rectangle"<<endl;
	cin>>l>>w;
	Rectangle REC(l,w);        //矩形物件 
	float SREC=REC.area();
	cout<<"The area of the rectangle is "<<setw(5)<<SREC<<endl;   //setw()函式只對其後緊跟的內容有效 
	return 0;
}
需要注意的是類成員函式的寫法應該像建構函式一樣,而不是像自定義函式那樣編寫,執行結果如下:2、定義一個複數類Complex,使得下面的程式碼能夠工作。
Complex c1(3,5);   //用複數3+5i初始化c1
Complex c2=4.5     //用實數4.5初始化c2
c1.add(c2);        //將c1與c2相加,結果儲存在c1中
c1.show();         //將c1輸出(這時的結果應該是7.5+5i)

實現程式碼如下:

#include<iostream>
using namespace std;

class Complex
{
	public:
		double real,imaginary;
		Complex(double re,double imag);   //建構函式實現 
		
		void add(Complex &c)   //加法實現 
		{
			real=real+c.real;
			imaginary=imaginary+c.imaginary;
		}
		void show()   //輸出實現 
		{
			if(imaginary!=0)
			{
				cout<<real<<"+"<<imaginary<<"i"<<endl;
			}
			else
			{
				cout<<real<<endl;
			}
		}
		
};

//建構函式初始化資料成員 
Complex::Complex(double re,double imag=0)     //第一個引數預設 
{
	real=re;
	imaginary=imag;
}

//主函式實現 
int main()
{
	Complex c1(3,5);
	Complex c2=4.5;
	c1.add(c2);
	c1.show();
	return 0;
}

執行結果如下:
該類不僅涉及到了複製建構函式,還涉及到了型別轉換建構函式本次實驗初步瞭解了類與物件,真正初步接觸面向物件的程式設計,這次的重點是在用於類物件初始化的建構函式,複製建構函式和型別轉換建構函式。以後編寫程式相信大多數時候都是在寫類而不是在寫函式,以後也會進一步瞭解面向物件的程式設計。

相關推薦

C++實驗 實驗3 物件 4

設計一個float型別的陣列類CFltArray,要求CFltArray可以進行如下操作: (1)可以重置陣列的大小(Resize) (2)可以通過下標返回陣列元素,並對下標越界情況進行檢查 (3)可以利用已知陣列物件對整個陣列賦值和初始化 (4)可以返回當前陣列的大小(

實驗3 物件

    本次實驗主要圍繞類和物件,按照課本所述類是一種抽象機制,用於描述一類事物的共同屬性和行為,物件則是該類的某一特定實體或者例項,初次聽這些描述其實比較晦澀,看到例項就比較易懂了,C++中的類和C語言中的結構體從形式上看很像,但是還含有結構體沒有的內容,類中有外部介面和私

C++實驗 實驗3 物件 1

定義一個圓類,計算圓的面積和周長。 要求:分別用成員函式和友元函式來求圓的面積和周長。 #include<iostream> using namespace std; const double PI = 3.14159; class Circle

C++實驗 實驗3 物件 3

定義日期型別Date。要求有以下成員: (1)可以設定日期; (2)日期加一天操作; (3)輸入函式,輸入格式為:XXXX XX  XX,如2010 4 13; (4)輸出函式,輸出格式為:XXXX年XX月XX日,如2010年4月11日。 #include<io

C++實驗3_3 物件(3)

五、實驗結果及分析 1. 構造了一個CPU! CPU開始執行! CPU停止執行! 析構了一個CPU! 3. #include <iostream.h> enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7

實驗3 對象

具體實現 .sh code 原本 alt src ret 運行 應用 實驗結論 4-11 定義並實現一個矩形類,有長,寬兩個屬性,由成員函數計算矩形的面積。 #include <iostream> using namespace std; class rect

kotlin(3):物件以及其他的概念屬性

類和物件 類宣告由類名,類頭(指定其型別引數,主建構函式等)和由大括號包圍的類體構成,類頭和類體都是可選的,如果一個類沒有類體,可以省略花括號.   1.主建構函式 在kotlin中的一個類可以有一個主建構函式和多個次建構函式,主建構函式是類頭的一部分,跟在類名後.

1.面向過程程式設計 2.面向物件程式設計 3.物件 4.python 建立物件 如何使用物件 5.屬性的查詢順序 6.初始化函式 7.繫結方法 與非繫結方法

1.面向過程程式設計 面向過程:一種程式設計思想在編寫程式碼時 要時刻想著過程這個兩個字過程指的是什麼? 解決問題的步驟 流程,即第一步幹什麼 第二步幹什麼,其目的是將一個複雜的問題,拆分為若干的小的問題,按照步驟一一解決,也可以說 將一個複雜的問題,流程化(為其制定一個固定的實現流程),從而變得簡單化例如

實驗14 物件

實驗14 類和物件 一、實驗目的和要求 (1)掌握類、類的資料成員、類的成員函式的定義方法。 (2)掌握建構函式的定義方法和執行過程。 (3)掌握類成員的public和private訪問屬性的區別及用法。 (4)掌握物件的定義方法及對成員函式的呼叫方法。 二、實驗內容和步驟

C++實驗2-物件1

一、問題及程式碼 /* * 檔名稱: C++ * 作 者: 尚超 * 完成日期:2016年3月11日 * 版 本 號:v1.0 * 對任務及求解方法的描述部分: * 輸入描述: * 問題描述: 輸入任意三個數,按從小到大輸出 * 程式輸出: * 問題分

實驗5 物件的應用

實驗5 類和物件的應用 這個很重要想要改行JAVA的注意了要理解好類和物件,到後期做專案它可能就變成了1+1的事了 一、實驗目的 掌握類定義的基本格式和類成員的訪問控制。 掌握物件定義和利用建構函式對物件的資料成員進行初始化的方法。 掌握成員函式的定義與使用。 理

c++實驗3對象

code 實現 pub -s char display art 圖片 lose 實 驗 3: part 1:驗證 part 2:graph #include <iostream> #include "graph.h" using nam

C++ 實驗3 對象

pub n) mage Once include oid con rap efi Part 2 #ifndef GRAPH_H #define GRAPH_H class Graph { public: Graph(char ch, int n);

C++第3實驗 物件

一、問題及程式碼 /* * 檔名稱: 靜態成員應用 * 作 者:姜小萌 * 完成日期:2016年4月8日 * 版 本 號:vc6.0 * 對任務及求解方法的描述部分:運用類和物件完成 * 輸入描述:無 * 問題描述: 設計含有靜態資

實驗對象-3 zxt

錯誤 src 總結 mat .... CP 第一題 分享 函數 實驗一:運行ex1.cpp 實驗二:ex2.cpp 實驗三:補全ex3.cpp並運行 我以為是自己喜歡和不喜歡的呢...... 實驗四:習題6-17 實驗五:習題6-18 實驗

實驗5 對象3

SM spa clu one day name 運行 book turn using 四、實驗結論 實驗內容1 vector3.cpp 完整程序 #include <iostream> #include <vector> #include &

Java基礎 實驗二:物件

1.實驗目的 掌握類的宣告、物件的建立、方法的定義和呼叫、建構函式的使用。 2.實驗內容 1)定義一個表示學生資訊的類Student,要求如下: ① 類Student的成員變數:       sNO 表示學號;      

物件】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)

題目描述: 求1+2+3+...+n,要求不能使用乘除法(數學公式)、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C). 分析:這道題雖然常用的方式都給禁掉了,但是可以使用我們c++學過的類和物件,通過使用類和靜態來完成。常規情況下,從1+到n,

談談Delphi中的物件3---抽象它的例項

---恢復內容開始--- 四、抽象類和它的例項   Delphi中有一個類稱為是抽象類,你不能天真的直接為它建立一個例項,如 var StrLst: TString; begin StrLst:= TString.Create; StrLst.Add('I love

Beginng_Java7(譯):發現物件(第二章3.4.5節)(完)

多型 一些現實世界的實體可以改變他們的形式。 例如,水(在地球上而不是星際空間)自然是液體,但在冷凍時會變成固體,在加熱到沸點時會變成氣體。 諸如經歷變態的蝴蝶之類的昆蟲是另一個例子。 改變形式的能力被稱為多型,並且對於在程式語言中建模是有用的。 例如,通過引入