构造函数概念: 构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一
构造函数概念:
构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用,保证每个数据成员都有一个合适的初始值,并且在对象的生命周期内只调用一次(创建对象)
作用:
创建一个对象(面向对象,第一步肯定得创建对象)并且数据成员都有初始数值(数值有初始化和赋值)
初始化和赋值区别
- 初始化(数值在构建函数中给予)
- 赋值(数值在构建函数完成之后给予)
初始化(数值在构建函数中给予)
#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++构建函数内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!