c++基础入门构造函数的重载和带默认参数
来源:互联网 发布:java spring rpc 编辑:程序博客网 时间:2024/06/06 10:54
- 构造函数的重载
在一个类中可以定义多个构造函数版本,即构造函数允许被重载,只要每个构造函数的形参列表是唯一的。一个类的构造函数数量是没有限制的。一般地,不同的构造函数允许建立对象时用不同的方式来初始化数据成员。
#include<iostream>using namespace std;class Point{ public: Point(){x=y=0;}//无参数的构造函数 Point(int a,int b):x(a),y(b){}//有参数的构造函数 void display(){ cout<<"x="<<x<<"y="<<y<<endl; } private: int x,y;//};int main(){ Point m;//定义Point对象m,调用无参构造函数初始化 m.display(); Point n(1,2);//调用带参构造器初始化 n.display(); return 0;}
尽管在一个类中可以包含多个构造函数,但是对于每一个对象来说,建立对象时只执行其中一个,并非每个构造函数都被执行。
- 带默认参数的构造函数
构造函数的参数允许使用默认值。对类的设计者来说,使用默认参数可以减少代码重复;对类的使用者者来说,使用默认参数可以方便地用适当的参数进行初始化。必须在类的内部指定构造函数的默认参数,不能在类外部指定默认参数如果构造函数的全部参数都指定了默认值,则在定义对象时可以给一个或几个实参,也可以不给出实参。这时,就与无参数的构造函数有歧义了。
/************************************************************************* > File Name: Point2.cpp > Author: > Mail: > Created Time: Sun Dec 3 10:37:09 2017 测试默认参数构造器与无参构造构造器冲突 ************************************************************************/#include<iostream>using namespace std;class Point{ public: Point(){x=y=0} Point(int a=0,int b=0):x(a),y(b){ } void display(){ cout<<x<<" "<<y<<" "<<endl; } private: int x,y;};int main(){ Point a; a.display(); return 0;}
在一个类中定义了带默认参数的构造函数后,不能再定义与之有冲突的重载构造函数。一般地,不应同时使用构造函数的重载和带默认参数的构造函数。
阅读全文
0 0
- c++基础入门构造函数的重载和带默认参数
- C++语言基础 例程 带默认参数的构造函数
- 带默认参数的构造函数
- 第五周任务一之默认构造函数和带参数的构造函数
- 项目一 默认构造函数和带参数的构造函数
- 默认构造函数和构造函数重载
- C++构造函数重载以及默认参数引起的二义性
- 实现string的默认构造函数,拷贝函数,c型字符串参数的构造函数,赋值构造函数,析构函数,重载输出操作符,测试
- C++使用带默认参数的构造函数
- 带参数的构造函数及使用默认参数的构造函数
- 第五周 项目一:三角形类(默认构造函数和带参数构造函数)
- c++默认的构造函数中调用带参数的构造函数
- 第四周项目一 三角形类构造函数(3) 带默认参数的构造函数
- 默认参数的构造函数
- 默认参数的构造函数
- 默认参数的构造函数
- C++基础--------带默认参数的虚函数 静态类型和动态类型分析
- 带默认参数的函数
- 微信内置浏览器中如何实现点击电话号码自动到拨号页面?
- 提问的艺术
- JSP 比较时间字段与当前时间大小进行相关显示
- Github beginning
- Anroid动画总结二:属性动画 ValueAnimator的基本使用
- c++基础入门构造函数的重载和带默认参数
- 8.2忽略特殊文件
- 稳压电源 连载1:基本概念.
- indexOf与includes的区别
- 学习node 需要额外知道的几个模块
- I
- 日期时间去掉日期后面的时间
- 程序员的17种状态,你有过几种?
- firewalld&iptables