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

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

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)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5699063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存