博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类的构造函数的定义
阅读量:6261 次
发布时间:2019-06-22

本文共 1016 字,大约阅读时间需要 3 分钟。

类的构造函数主要有3种定义形式.

(1)默认构造函数的格式如下:

类名()

这里的类名就是函数名.例如,一下代码定义了张户类的默认构造函数:

Account(){                //无返回类型,无参数(内联函数的形式)     ID=0;                  //默认ID     strcpy(Name,"");      //默认账户名     balance=0.0;          //默认余额 }

(2)带参数的构造函数的格式如下:

类名(形式参数表)

同样,这里的类名也是函数名.例如,一下代码定义了账户类的带参构造函数:

Account(int ID,char Name[],float balance){     this->ID=ID;    strcpy(this->Name,Name);    this->balance=balance;      }

(3)拷贝构造函数的格式如下:

类名(类名&c

Account(Account &other){    ID=other.ID;    strcpy(Name,other.Name);    balance=other.balance;}

所谓拷贝构造函数,顾名思义,就是创建一个现有对象的副本.为什么这里用引用形式?

如果改为这样Account(Account other){...}

,在创建账户对象my时传入一个对象他.这是构造函数需要首先创建函数内的局部变量other,other首先得到t1的值,只有other创建成功菜能执行函数体中的赋值操作.那么创建other需要什么呢?一定会调用Account的构造函数,而且一定是拷贝够着函数,因为other是要成为t1的副本,这是不会调用默认构造函数.于是在创建other对象的拷贝构造函数中,相同的一幕发生了,需要首先创建另一个耶称为other的局部对象....,于是陷入死循环.二引用传递就不会发生这种情况,因为引用只是链接到外部对象,不会创建新对象.

无论用户自定义的构造函数还是默认构造函数都有以下特点:

(1)在对象被创建是执行,执行一下

(2)构造函数的函数名与类名相同

(3)没有返回值类型,也没有返回值

(4)构造函数不能像普通函数那样被显示调用

转载于:https://www.cnblogs.com/swustzww/p/8495821.html

你可能感兴趣的文章
python设计模式-外观模式
查看>>
NEO学习笔记,从WIF到地址
查看>>
C语言之父Dennis Ritchie告诉你:如何成为世界上最好的程序员?
查看>>
绿色应用达标报告发布,47%主流应用未通过安全标准
查看>>
Spring Boot工程集成全局唯一ID生成器 UidGenerator
查看>>
JS之原型与原型链
查看>>
大话 JavaScript 动画
查看>>
[case43]聊聊storm的LinearDRPCTopologyBuilder
查看>>
[LeetCode] 674. Longest Continuous Increasing Subsequence
查看>>
从观察者模式到手写EventEmitter源码
查看>>
当你在浏览器里输入一个url发生了什么?
查看>>
React入门0x007: 生命周期概念
查看>>
webpack调优总结
查看>>
Springboot对多线程的支持详解
查看>>
Sublime text3修改tab键为缩进四个空格
查看>>
「Do.008」Android 实战项目(3)——Git 分支管理模型
查看>>
原生js中Object.keys方法详解
查看>>
Webpack 4.X 从入门到精通 - plugin(二)
查看>>
Elasticsearch的搜索类型(SearchType类型)
查看>>
Java知识点总结(JDBC-大文本对象的使用)
查看>>