【C++】构造函数
来源:互联网 发布:java分布式文件系统 编辑:程序博客网 时间:2024/05/16 17:58
我们在定义一个对象的同时想给它的数据成员赋值,这时候就要用到构造函数,通过构造函数来实现对象的初始化。
构造函数是类的成员函数的一种,它有一些自己的特点区别于一般函数。
1:构造函数的名称必须和类名一致。
2:构造函数没有返回值,不能用void来修饰。
3:构造函数不能直接调用,它由编译器在创建对象时自动调用。
4:用户可以自己定义构造函数,如果没有,系统会提供一个默认的空构造函数。
5:用户可以定义多个构造函数(参数类型或个数不同),也叫构造函数的重载。
下面是如何使用构造函数:
#include <iostream.h> //输入输出流头文件class Date //Date类{public://构造函数//当没有对数据对象赋值时,默认年月日都为1Date(){year = 1;month = 1;day = 1;}Date(int y,int m,int d) //通过用户来赋值{year = y;month = m;day = d;}void print() const;private://数据成员int year;int month;int day;};void Date::print() const{cout<<year<<"-"<<month<<"-"<<day<<endl; //格式化输出year-month-day对应的年月日}int main(){Date national_day(1949,10,1);<span style="white-space:pre"></span>//对象初始化时通过构造函数为变量赋值 Date defaultday=Date();//对象初始化时使用构造函数的默认值 national_day.print();//结果为:1994-10-1defaultday.print();//结果为:1-1-1return 0;}
下面的例子是添加了有默认形参值得构造函数:
#include <iostream.h> //输入输出流头文件class Date //Date类{public://构造函数Date(int y=1,int m=1,int d=1) //当没有对数据对象赋值时,默认年月日都为1{year = y;month = m;day = d;}void print() const;private://数据成员int year;int month;int day;};void Date::print() const{cout<<year<<"-"<<month<<"-"<<day<<endl; //格式化输出year-month-day对应的年月日}int main(){Date national_day(1949,10,1);<span style="white-space:pre"></span>//对象初始化时通过构造函数为变量赋值 Date defaultday=Date();//对象初始化时使用构造函数的默认形参值 national_day.print();//结果为:1994-10-1defaultday.print();//结果为:1-1-1return 0;}
两个程序相同的运行结果:
1 0
- 【C++】拷贝构造函数
- C#:静态构造函数
- C++:拷贝构造函数
- explicit构造函数(C++)
- C++:关于构造函数
- C++-构造函数
- C++String构造函数
- c++-转换构造函数
- c++"拷贝构造函数
- C++: 拷贝构造函数
- object-c 构造函数
- C#构造函数
- objective-c 构造函数
- 【C++】构造函数
- 【C++】explicit构造函数
- 【C++】拷贝构造函数
- C++: 复制构造函数
- C++: 移动构造函数
- CAS搭建单点登陆服务端配置
- 清除行列
- CAS和Shiro在spring中集成
- HDU 2001 计算两点间的距离(水~)
- Win7下安装的Qt 5.5 不能调试,问题解决
- 【C++】构造函数
- Java Nio Buffer
- 面试题 输入两个很大的正数(用C字符串表示),输出它们的乘积,不考虑非法输入
- Apache Shiro 集成-Cas
- Apache Shiro 集成-spring
- Java日志方案概述
- 单点登录cas与权限管理框架shiro集成-spring项目方式
- HDU 2002 计算球体积(水~)
- unity----贪吃蛇详解