1. 程式人生 > >c++學習筆記之成員函式

c++學習筆記之成員函式

學了c++才知道什麼是面向物件什麼是面向過程。幼稚的我曾經還覺得c++和C語言差不多,接觸之後才知道c++是多麼的難,光類和物件這個知識點就看了一天。什麼建構函式解構函式,物件陣列物件成員弄得我頭大,現在才知道為什麼老師說c++是最難的語言,學c++就是在地獄裡磨鍊,從地獄出來就是天堂,會有會當凌絕頂一覽眾山小的感覺,希望自己能堅持到底,儘自己的最大努力把C++學好,不求泛而多,只求專而精。哎老大不小了,壓力巨大,希望早點工作減輕父母的壓力,回報自己的家人和那些對自己有知遇之恩的人,又想讀個博士,魚與熊掌不可兼得,希望自己從今天以後有個清楚的規劃,要超強的自律,爭取每一天都過得充實,不嘮那麼多沒用的了,要學習了。一段有錯誤的程式碼(關於c++中的成員函式)

#include<iostream>
using namespace std;
class time
{
	void set_time(void);
	void show_time(void);
	int hour;
	int minute;
	int sec;
 } ;
 time t;
 int main()
 {
 	set_time;
 	show_time;
 	return 0;
 }
 int set_time(void)
 {
 	cin>>t.hout;
 	cin>>t.minute;
 	cin>>t.sec;
 }
 int show_time(void)
 {
 	cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
 }

這段程式碼有四個錯誤

(1)set_time和show_time函式放在main函式之後但之前卻未宣告

(2)set_time和show_time函式按time的成員函式來宣告的但定義的時候確是按一般函式定義的。

(3)類裡面的成員只要沒有宣告均按私有成員處理,這是不能呼叫的,但是在set_time和show_time函式都呼叫了。

(4)沒有返回函式。

下面貼上按一下要求修改的程式碼

(1)將資料成員改為私有的

(2)將輸入和輸出的功能由成員函式實現

(3)在類體內定義成員函式

#include<iostream>
using namespace std;
class time
{
	public:
	void set_time(void)
{
	cin>>hour;
	cin>>minute;
	cin>>sec;
}
void show_time(void)
{
	cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
	private:
		int hour;
		int minute;
		int sec;
};
time t;
int main()
{
	t.set_time();
	t.show_time();
	return 0;
}

進一步修改明確類成員函式的各種定義方法

在類體內宣告成員函式,在類外定義成員函式,類外定義成員函式要用到作用域::

#include<iostream>
using namespace std;
class time
{
	public:
	void set_time(void);//原來沒分號,現在有分號
	void show_time(void);
	private:
		int hour;
		int minute;
		int sec;
};
time t;
void time::set_time(void)//利用作用域在類外對成員函式進行定義
{
	cin>>hour;
	cin>>minute;
	cin>>sec;
}
void time::show_time(void)
{
	cout<<hour<<":"<<minute<<":"<<sec<<endl;
}
int main()
{
	t.set_time();
	t.show_time();
	return 0;
}