C++:构造函数的重载
构造函数的重载的判断条件是:参数的个数或者类型不同,其他要保持一样
举例说明:
方式一:在类中声明重载构造函数,在类外定义
//第一种方法:
#include<iostream>
using namespace std;
class Date{
public:
Date(); //声明一个无参数的构造函数
Date(int y,int m,int d);//声明一个带有三个参数的构造函数
void showDate();
private:
int year;
int month;
int day;
};
Date::Date() //定义一个无参数的构造函数,进行初始化
{
year = ;
month = ;
day = ;
}
Date::Date(int y,int m,int d)//定义一个带有三个参数的构造函数,进行初始化
{
year = y;
month = m;
day = d;
}
inline void Date::showDate() //定义一个显示内联函数
{
cout<<year<<","<<month<<","<<day<<endl;
}
int main()
{
Date date1; //定义Date的对象date1,并调用无参数的构造函数
cout<<"Date1 output:"<<endl;
date1.showDate(); //调用showDate()方法,显示date1的数据
Date date2(,,);//定义Date的对象date2,并调用有三个参数的构造函数
cout<<"Date2 output:"<<endl;
date2.showDate();//调用showDate()方法,显示date2的数据
return ;
}
方式二:直接在类中定义重载构造函数
//第二种方法:
#include<iostream>
using namespace std;
class Date{
public:
Date() //声明并定义一个无参数的构造函数
{
year = ;
month = ;
day = ;
}
Date(int y,int m,int d)//声明并定义一个带有三个参数的构造函数
{
year = y;
month = m;
day = d;
}
void showDate() //声明并定义一个showDate的普通成员函数
{
cout<<year<<","<<month<<","<<day<<endl;
}
private:
int year;
int month;
int day;
};
int main()
{
Date date1; //定义Date的对象date1,并调用无参数的构造函数
cout<<"Date1 output:"<<endl;
date1.showDate(); //调用showDate()方法,显示date1的数据
Date date2(,,);//定义Date的对象date2,并调用有三个参数的构造函数
cout<<"Date2 output:"<<endl;
date2.showDate();//调用showDate()方法,显示date2的数据
return ;
}
//注意:使用无参构造函数创建对象时,应该用语句"Date date1",而不能用语句"Date date1()"
// 因为语句"Date date1()":表明一个名为date1的普通函数,此函数的返回值为Date类型
C++:构造函数的重载的更多相关文章
- C++中复制构造函数与重载赋值操作符总结
前言 这篇文章将对C++中复制构造函数和重载赋值操作符进行总结,包括以下内容: 1.复制构造函数和重载赋值操作符的定义: 2.复制构造函数和重载赋值操作符的调用时机: 3.复制构造函数和重载赋值操作符 ...
- C++中复制构造函数与重载赋值操作符
我们都知道,在C++中建立一个类,这个类中肯定会包括构造函数.析构函数.复制构造函数和重载赋值操作:即使在你没有明确定义的情况下,编译器也会给你生成这样的四个函数.例如以下类: class CTe ...
- PHP构造函数的重载
由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸如整型,字符串之类的标量类型上),并且对于一个函数,比如只定义了3个输入参数,PHP却运行调用的时候输入 ...
- 牛客网Java刷题知识点之构造函数是什么、一般函数和构造函数什么区别呢、构造函数的重载、构造函数的内存图解
不多说,直接上干货! 构造函数是什么? 构建创造对象时调用的函数. 构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量. 注意: 创建对象都必须要通过构造函数初始化. 构造函数的特点 ...
- C++构造函数和重载函数运算符如何区分
构造函数和重载函数运算符如何区分: class Distance { private: int feet; int inches; public: Distance(){ feet = ; inche ...
- Scala 中 构造函数,重载函数的执行顺序
在调试scala在线开发教程(http://www.imobilebbs.com/wordpress/archives/4911)的过程中看到了以下代码,但是这段代码无论怎么调试都无法成功. abst ...
- Java中的构造函数和重载
一.Java中的构造函数 构造函数是对象被创建时初始化对象的成员方法,它具有和它所在的类完全一样的名字.构造函数只能有入口参数,没有返回类型,因为一个类的构造方法的返回类就是类本身.构造函数定义后,创 ...
- C++结构体:默认构造函数,复制构造函数,重载=运算符
C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值. 比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就 ...
- C++拷贝构造函数与 = 重载
调用拷贝构造函数进行初始化的时候,是不会调用=重载的. // test.cpp : 定义控制台应用程序的入口点. // //#include "stdafx.h" #include ...
随机推荐
- WPF中ListBox的项ListBoxItem被选中的时候Background变化
使用WPF 中ListBox,点击ListBoxItem的时候,自定义它的背景色,曾经在网上找了一些方法, 不是很理想,后来在StackOverflow上找到了,贴出代码和效果图: 效果图:
- 过拟合(Overfitting)和正规化(Regularization)
过拟合: Overfitting就是指Ein(在训练集上的错误率)变小,Eout(在整个数据集上的错误率)变大的过程 Underfitting是指Ein和Eout都变大的过程 从上边这个图中,虚线的左 ...
- 如何设置让SFTP的用户限制在某个目录下
通常SFTP的任何用户登录之后能看到整个系统的文件目录,这样很不安全. 通过chroot我们可以将某个用户登录SFTP后只能在某个限定的目录下操作,这样可以更安全.我们来看看怎么设置. 1.创建一个用 ...
- ActiveMQ使用记录
1.在Linux中安装ActiveMQ 官方文档地址:http://activemq.apache.org/getting-started.html#GettingStarted-StartingAc ...
- 微软职位内部推荐-Senior Software Development En
微软近期Open的职位: Job Title: Senior Development Engineer Division: Visual Studio China - Developer Divisi ...
- 微软职位内部推荐-SDE2 (Windows - Audio)
微软近期Open的职位: SDE2 (Windows - Audio) Windows Partner Enablement team in Operating System Group is loo ...
- GDAL编译(转)
一.简单的编译 1.使用VisualStudio IDE编译 首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,make ...
- Python Socket File Transfer
I have a RPi which I intented to use it to crawl data. The development environment in RPi is very ba ...
- 使用GitHub建立自己的个人主页
1.建仓库 在自己的库里建一个hujun123qwe.github.io的库 即可以使用这个名字当网址访问. 2.写内容 在库里建一个首页文件 index.html 这个个人主页只支持静态的内容,像p ...
- BZOJ 2763: [JLOI2011]飞行路线 spfa dp
题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题解: d[x][kk]表示从s到x用了kk次免费机会的最少花费. 代码: #in ...