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;
}

猜你喜欢

转载自blog.csdn.net/qq_24163555/article/details/83590482
今日推荐