栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++中构造函数的分类与调用(有参、无参、拷贝构造、括号法、显示法、隐式转换法)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++中构造函数的分类与调用(有参、无参、拷贝构造、括号法、显示法、隐式转换法)

构造函数的分类
  • 按参数分:
    • 有参函数
//有参函数
class Person
{
public:
   person(int a)
   {
    age=a;
    cout<<"有参构造函数的调用:"< 

  • 无参函数(即默认函数)
//无参函数(默认函数)
class Person
{
public:
Person()
{
cout<<"无参函数的构造函数的调用。"< 
  • 按类型分:
    • 普通构造
    • 拷贝构造
class Person
{
public:
   //有参构造函数
   Person(int a)
   {
    age=a;
    cout<<"有参构造函数的调用:"< 

请注意:函数名一定要与类名完全相同 构造函数的调用
  • 括号法
Person P;        //无参
Person p1(10) ;  //有参
Person p2(p1);   //拷贝
注意:

调用无参(默认)构造函数时不能使用小括号,否则编译器就会将其识别为一个函数声明。

  • 显示法
Person p;                //默认(无参)函数
Person p1=Person(10);    //有参函数
Person p2=Person(p1);    //构造函数
匿名对象:

1.Person(p1)、Person(10)属于匿名对象,匿名对象在该行结束后,系统就自动回收该对象;
2.不能用拷贝构造函数初始化匿名对象,编译器认为:Person(p3)==Person p3,会产生重定义的错误。

  • 隐式转换
Person p4=10  //即Person p4 =Person(10)
Person p5=p4   //Person p5=Person(p4)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/698937.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号