c++构造函数

前言

在对象创建的时候都会调用构造函数来初始化
构造函数一共有三种,普通构造、拷贝构造分别可以为不同种类的成员赋值,最后一种是移动构造设计运算符重载
构造函数的特征:

1、构造函数名与类名相同,且无返回值(void也不行)
2、在每一个类中都存在有默认的构造函数(系统自行提供),且在实例化对象时都会调用,只是不做任何是事情
3、构造函数会在实例化对象时自动调用,不允许显式调用

普通构造函数

普通构造函数中分为有参构造和无参构造,即带参数的构造函数,上面说到系统默认提供的就是无参构造,默认不做任何事情,如果我们自己写了构造函数,系统不再默认使用构造函数,而是调用我们自己写的构造函数,这就叫构造函数的重写

无参构造

#include<iostream>
using namespace std;
class Triangle
{
	public:
		Triangle()
		{
			cout<<"无参构造"<<endl;
			a=3;
			b=4;
			c=5;
		}
		void getValue()                 //成员函数(打印成员变量值)
		{
			cout<<"a="<<a<<endl;
			cout<<"b="<<b<<endl;
			cout<<"c="<<c<<endl;
		}
		private:
			int a;
			int b;
			int c;
};
int main()
{
	Triangle A;
	A.getValue();                  //调用成员函数
}

在这里插入图片描述
有参构造

#include<iostream>
using namespace std;
class Triangle
{
public:
	Triangle(int a, int b, int c )
	{
		cout << "有参构造" << endl;
		this->a = a;
		this->b =b;
		this->c= c;
	}
	void getValue()                 //成员函数(打印成员变量值)
	{
		cout << "a=" << a << endl;
		cout << "b=" << b << endl;
		cout << "c=" << c << endl;
	}
private:
	int a;
	int b;
	int c;
};
int main()
{
	Triangle A(3,4,5);//调用参数构造
	A.getValue();    //调用成员函数
}

在这里插入图片描述

拷贝构造

不仅仅需要为对象赋给基本的数值,还要将这个对象中的所有成员或是特定的成员赋给另外一个

#include<iostream>
using namespace std;
class Triangle
{
	public:
		Triangle(int a,int b,int c)          //有参构造           
		{
			this->a=a;
			this->b=b;
			this->c=c;
			cout<<"有参构造"<<endl;
		}
		Triangle(Triangle &obj)                 //拷贝构造
		{
			a=obj.a;                 //通过目标对象对每个成员变量赋值
			b=obj.b;
			c=obj.c;
			cout<<"拷贝构造"<<endl;
		} 
		void getValue()                   //成员函数
		{
			cout<<"a="<<a<<endl;
			cout<<"b="<<b<<endl;
			cout<<"c="<<c<<endl;
		}
 
		private:
			int a;
			int b;
			int c;
};
int main()
{
	Triangle A(3,4,5);                    //A调用了有参构造
	Triangle B(A);                        //B调用了拷贝构造
	B.getValue();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值