构造函数主要作用在于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用;析构函数主要作用在于对象销毁前系统自动调用,执行一些清理工作
构造函数概念:
构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次(创建对象)
作用:
创建一个对象(面向对象,第一步肯定得创建对象)并且数据成员都有初始数值(数值有初始化和赋值)
初始化和赋值区别
- 初始化(数值在构建函数中给予)
- 赋值(数值在构建函数完成之后给予)
初始化(数值在构建函数中给予)
#ifndef __COMPLEX__
#define __COMPLEX__
class complex
{
public:
complex(double r = 0, double i = 0)
: re(r), im(i) {} //初始化
private:
double re, im;
};
#endif // !__COMPLEX__#include"complex.h"
int main()
{
complex c1(1, 1);
return 0;
}
1.调用构造函数
2.创建对象名字为c1
3.对象中数据成员与函数参数对应,进行数值给予,生成对象的数据成员顺序是类中private的顺序
4.对象c1创建成功
赋值(数值在构建函数完成之后给予)
#ifndef __COMPLEX__
#define __COMPLEX__
class complex
{
public:
complex(double r = 0, double i = 0) //名字与类名相同
{
re = r;
im = i;
}
private:
double re, im;
};
#endif // !__COMPLEX__#include"complex.h"
int main()
{
complex c1(1, 1);
return 0;
}
1.调用构造函数
2.创建对象名字为c1
3.构建函数中没有初始化,编译器自动加上初始化操作,对数据成员进行随机数初始化
4.对象c1创建成功
5.函数中输入的两个参数,函数执行命令行,对数据进行赋值
如何得知两则区别
tihs指针
this指针中存储的是自己对象的地址
在两者构造函数中使用this指针,初始化操作因为类对象完成初始化前,类对象还未形成,所以会对this报错
初始化中使用this
class complex
{
public:
complex(double r = 0, double i = 0)
: this->re(r),this-> im(i) {}
private:
double re, im;
};error: expected '{' before 'this'
赋值中使用this
class complex
{
public:
complex(double r = 0, double i = 0)
{
this->im = r;
this->re = i;
}
private:
double re, im;
};
到此这篇关于C++构建函数使用介绍的文章就介绍到这了,更多相关C++构建函数内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:C++构建函数使用介绍
- 我应该为我的项目使用相对包含路径,还是将包含目录放在包含路径上? 2022-10-30
- C语言手把手带你掌握带头双向循环链表 2023-04-03
- Easyx实现扫雷游戏 2023-02-06
- c++ const 成员函数,返回一个 const 指针.但是返回的指针是什么类型的 const? 2022-10-11
- C++ 数据结构超详细讲解顺序表 2023-03-25
- C语言详解float类型在内存中的存储方式 2023-03-27
- C语言qsort()函数的使用方法详解 2023-04-26
- ubuntu下C/C++获取剩余内存 2023-09-18
- 详解C语言中sizeof如何在自定义函数中正常工作 2023-04-09
- Qt计时器使用方法详解 2023-05-30
