【C++】构造函数

news/2024/5/19 1:02:08 标签: 构造函数, class, 对象, C++
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

我们在定义一个对象的同时想给它的数据成员赋值,这时候就要用到class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数,通过class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数来实现对象的初始化。


class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数是类的成员函数的一种,它有一些自己的特点区别于一般函数。


1:class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数的名称必须和类名一致。

2:class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数没有返回值,不能用void来修饰。

3:class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数不能直接调用,它由编译器在创建对象时自动调用。

4:用户可以自己定义class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数,如果没有,系统会提供一个默认的空class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数。

5:用户可以定义多个class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数(参数类型或个数不同),也叫class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数的重载。


下面是如何使用class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数:

class="language-html">#include <iostream.h>    //输入输出流头文件
class Date               //Date类
{
	public:
		//class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数
		//当没有对数据对象赋值时,默认年月日都为1
		Date()
		{
			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>//对象初始化时通过class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数为变量赋值 
	Date defaultday=Date();			//对象初始化时使用class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数的默认值 
	national_day.print();			//结果为:1994-10-1
	defaultday.print();			//结果为:1-1-1
	return 0;
}

下面的例子是添加了有默认形参值得class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数:

class="language-html">#include <iostream.h>    //输入输出流头文件
class Date               //Date类
{
	public:
		
		//class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数
		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>//对象初始化时通过class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数为变量赋值 
	Date defaultday=Date();			//对象初始化时使用class="tags" href="/tags/GouZaoHanShu.html" title=构造函数>构造函数的默认形参值 
	national_day.print();			//结果为:1994-10-1
	defaultday.print();			//结果为:1-1-1
	return 0;
}

两个程序相同的运行结果:



http://www.niftyadmin.cn/n/1031360.html

相关文章

Filter 过滤器

Filter(过滤器) 作用: 在一个请求去访问某个资源的时候,filter可以在这个请求访问到这个资源之前,把请求拦下,然后做出一系列的处理或者判断(比如编码的转换,信息的过滤、权限的判断、是否已经登录的验证等等),最后filter再决定是否要让这个请求去访问那个资源. 如何写一个fi…

【SQL Server 2008 安装篇】详细安装步骤

前言&#xff1a; 前几天电脑恢复&#xff0c;重新安装了一下SQL Server 2008 ,把详细步骤记录了下来&#xff0c;希望对有用到的朋友有一些帮助。我们先下载SQL Server 2008 简体中文版 的ISO光盘映像文件&#xff0c;通常我们可能会安装一个虚拟光驱来打开ISO文件&#xff0c…

Listener 监听器

作用:监听web中的一些事件的发生&#xff0c;如果某些事件一旦发生了&#xff0c;那么这个监听器就会调用某些方法进行处理。 &#xff08;比如:在web中可以监听request&#xff0c;session&#xff0c;application对象的创建和销毁。&#xff09; 如何去写一个监听器: 1.写一…

解决Xshell连接远程linux服务器,关闭Xshell程序对应的运行程序也相应关闭的问题

1.先安装screen yum install screen2.具体步骤 shell> screen -S test #创建一个新的窗口&#xff0c;这个窗口关闭时程序不会关闭 shell> java -jar test.jar #运行jar包

【Sql Server 2008 使用篇】如何附加和分离数据库

我们在使用SQL Server 2008的时候&#xff0c;经常会用到附加和分离数据库&#xff0c;那么如何进行这两个操作。 一&#xff1a;附加 右击数据库&#xff0c;选择附加&#xff1a; 添加已有的mdf文件&#xff1a; 确定即可&#xff0c;下图即为附加成功的数据库。 二&#x…

JSP 1:jsp页面

属于动态网页技术的一种.(servlet、jsp、PHP、asp等等) 1.jsp是什么。 java server page(JSP). 后缀名以.jsp结尾的页面文件. .html文件是静态页面. .jsp 文件是动态页面. 2.jsp页面中可以写哪些内容。 1&#xff09;html标签 2&#xff09;css …

Ribbon负载均衡的简单使用

Ribbon负载均衡的简单使用 1.pom文件引用依赖 2.在获取RestTemplate方法中添加Ribbon的LoadBalanced注解 3.仿造RandomRule自定义一个负载均衡的类 public class RandomRule extends AbstractLoadBalancerRule {/*** Randomly choose from all living servers*/edu.umd.cs.fi…

【软件工程】概览

背景&#xff1a; 在早期的计算机发展中&#xff0c;程序设计是少数聪明人干的事&#xff0c;编写的程序随心所欲&#xff0c;这样就出现了程序质量低下等一系列问题&#xff0c;导致了“软件危机”。为了应对“软件危机”人们开始用工程化的方法来开发软件。 基础&#xff1a;…