C++学习笔记九——类的定义与初始化

C++中,可以使用类来定义自己的数据类型,那么如和理解自己的数据类型?比如我们常见的如 int ,float,char…等等诸如此类,这都是一种数据类型,那么比如我自己想定义一个叫 clock 的数据类型,里面包含小时,分钟,秒,并可以显示出来,那么我们就可以使用类来定义自己的数据类型 clock。
定义如下

class clock {
    
    
public:
	void setime(int hour, int minute, int second);
	void showtime();
	clock(int newh, int newm, int news);//构造函数
	clock();//默认构造函数
private:
	int hour;
	int minute;
	int second;

};

class: 声明类的关键字,声明类的基本形式。
clock:类名,表示小时,分钟,秒。
public,private:表示类中的成员属性,其中public表示类成员属性为公共的,可在类外访问,具体访问的形式为 : 类名.成员名,其中类的成员既可以时数据也可以是函数名,比如我要访问名叫数据类型为clock的time中setime函数,访问的形式则为 time.setime()
private:为类的私有成员,不可以在类外访问可以在成员之访问。
其实还有一个protected属性成员,成员属性与private类似,但是在某些方面有些许的不同,将会在后面的文章进行介绍。
构造函数:其中包含了默认构造函数以及自己定义的构造函数,构造函数的作用是对成员进行初始化,比如对private中的成员进行初始化。构造形式为 类名(参数),构造函数不可以有返回值。以上面的clock为例构造函数的形式为:

clock(int newh, int newm, int news);//构造函数
clock();//默认构造函数

函数定义:在类中定义函数成员以后,可以在类外或者类内对函数进行定义,定义的方式为 返回值类型 类名::函数名(参数),以上面中的showtime函数为例 ,其中定义的方式为

void clock::showtime()
{
    
    
	cout << "time" << " is   " << hour << " : " << minute << "   : " << minute << endl;

}

下面举一个例子方便理解类的定义以及构造函数的作用,简单定义一个clock类并使用两种不同的方式初始化,并将初始化的数据打印出来,完整的代码如下

# include <iostream>
# include <string>
# include <vector>
using namespace std;
class clock {
    
    
public:
	void setime(int hour, int minute, int second);
	void showtime();
	clock(int newh, int newm, int news);//构造函数
	clock();//默认构造函数
private:
	int hour;
	int minute;
	int second;

};

void clock::setime(int newhour, int newminute, int newsecond)
{
    
    
	hour = newhour;
	minute = newminute;
	second = newsecond;
}
void clock::showtime()
{
    
    
	cout << "time" << " is   " << hour << " : " << minute << "   : " << minute << endl;

}
 clock::clock(int newh, int newm, int news):hour(newh),minute(newm),second(news)
{
    
    
	 //初始化列表,对象进行简单的初始化时可以采用此方式,可以优先执行初始化列表从而提高运行的速度
}
 clock::clock():hour(0),minute(0),second(0) {
    
    }
int main()
{
    
    
	/*clock  time;*/
	//time.setime(16, 41, 35);
	//time.showtime();

	//默认构造函数
	clock time1;
	time1.showtime();
	//构造函数初始化
	clock time2(9, 27, 6);
	time2.showtime();
}

上面用到了初始化列表,其实就是一种快速初始化的形式,因为简单的初始化就是将值赋给对应的变量,将赋值语句写在函数体内是一样的,运行结果如图。
程序运行结果
以上是简单的类的定义以及构造函数的使用。

猜你喜欢

转载自blog.csdn.net/qq_41803340/article/details/112506471
今日推荐