C++构造函数的几种写法

**

C++构造函数的几种写法

**

主要借鉴了https://blog.csdn.net/zxc024000/article/details/51153743
之前学习了构造函数的方法,但是对于类似于初始化列表的方式不太理解,于是自己在网上查阅了一些博客之后,在这里记录一下,方便以后温习查阅。废话好多,下面开始正文—

一.默认构造函数

二.初始化构造函数

class student
{
public:
	student()															//默认构造函数
	{
		num = 10086;
		age = 18;
	}

	//student(int n, int a) :num(n), age(a){}			//初始化构造函数也有两种方式,这里是初始化列表的方式
	student(int n, int a)											//这里是第二种方法,内部赋值的方法
	{
		num = n;
		age = a;
	}
	
	void display()
	{
		cout << "the name is " << num << endl;
		cout << "the age is " << age <<endl;


	}
protected:
private:
	int num;
	int age;
};

三.复制构造函数

student s1;
student s2(s1);

***C++自带的复制构造函数如下

Student(Student &b)
	{
		this.x=b.x;
		this.y=b.y;
	}

四.转化构造函数

下面的转换构造函数,将int类型的r转换为Student类型的对象,对象的age为r,num为1004.

Student(int r)
 {
	 int num=1004;
	 int age= r;
 }

五.Q&A

Q: C++中的类一定要加上构造函数吗?

A: 这里面涉及到对语言的理解,可以这么说,C++ 里面的所有类都有构造函数。
但是你写的时候可以不写构造函数,但你构造出来的类还是有构造函数。(意思是可以不用写构造函数,但是系统会加
上默认构造函数)这是因为你不写构造函数的话,其实 C++ 会自动的帮你加上一个构造函数,这个就是默认的构造函
数。
再贴一段百科的定义你就懂了:
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者
为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化时就会使用默认构造函数。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值