学习笔记(1):类(class)中知识点的详细解释

目录

目录

1.类成员访问限定符

2.构造函数

        2.1含参数的构造函数

        2.2构造函数的重载


目录

        #1.类成员访问限定符

        #2.构造函数

                ##2.1含参数的构造函数

                ##2.2构造函数的重载


1.类成员访问限定符

        限定符:public,private,protected

        1.1:public

                限定为public的成员函数等可以理解为能被所有的子类函数(这个以后会解释,详情见以后的文章)或者是对象访问。

        1.2:private

                限定为private的成员函数等可以理解为只能被类内函数,或者是被友元函数(友元函数以后会解释,详情见以后的文章)访问,而不能被类外对象或者是子类对象所访问。

        1.3:protected

                限定为protected的成员函数可以理解为只能被类内函数又或是子类函数访问,而不能被类外对象或者是子类对象访问。


2.构造函数

        构造函数:构造函数跟对应类的类命是相同的,一个类只能有一个构造函数。

        构造函数的作用:在建立对象时自动执行,其作用就是对对象的函数进行初始化。

        构造函数结构如下:

#include <iostream>
using namespace std;
class time
{
    public:
    time();    //这就是跟time类同名的构造函数
}

        2.1含参数的构造函数

  •         在进行初始化的过程中我们也会有很多要求,比如说我们可能希望如果我不设定初始值,程序自动进行赋值一个初始值,但是同样我们也可能会对某一个数值进行更改,因此带参数的构造函数应运而生。
  •         含参的构造函数:一般定义构造函数都会采用类外定义类内声明的方式(使得类内更加清晰而不是全是代码)
#include <iostream>
using namespace std;
class time
{   
public:
   	time()    //初始化
    {
		hour=10;
		minute=12;
		sec=56;
	}
    int hour;
    int minute;
    int sec;
};
int main(){
    time t;
    cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
  • 结果如下: 

  • 这就是很简单的一个初始化,在定义一个对象的时候会对对象当中的变量进行初始化 。

        2.2构造函数的重载

  • 构造函数的重载就可以实现多种可能性的初始化,下面是举例的代码:
#include <iostream>
using namespace std;
class time
{    
public:
	time();
	put();
	time(int h,int m,int s):hour(h),minute(m),sec(s){    //这里是类内定义一个含参的构造函数
		hour=h;
		minute=m;
		sec=s;
		}
private:
	int hour;
	int minute;
	int sec;	
};
time::put(){
	cout<<hour<<":"<<minute<<":"<<sec<<endl;
	return 0;
}	
time::time(){    //这里类外定义了一个不含参数的构造函数
	hour=10;
	minute=10;
	sec=10;
}
int main(){
	time t(12,23,34);
	time t1;
	cout<<t.put()<<endl;
	cout<<t1.put()<<endl;
}

        结果如下:            

  •         解释一下为什么最后要用到put()这个函数,因为类中的所有数据都是对对象封闭的,也就是对象无权访问数据,因为数据是在private下面,但是数据可以被类内函数访问,所以借助put函数将数据输出出来。(最后面的这个0,是put函数返回的0值。)
  •         在对象t的位置我想输入三个数值,那么就会调用类内定义的含参的构造函数,但是在对象他的位置,我并没有给我想输入的初值,那么就会调用类外定义的一个无参数的构造函数。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值