C++中构造函数的手动和自动调用方式

1,对象的构造通过构造函数来完成,和类名相同且没有返回值,这个时候只有参   数一个特性,构造函数可以自定义参数,这个参数一般而言就是对类进行初始  化来使用的;带有参数的构造函数的意义在于可以使得每个对象有不同的初始   化状态(生活中每个事物必然包含自己的初始化状态,不如人的出生,面向对   象用来将生活中的事物映射的程序设计领域,所以现实世界的情况都必须可以  用面向对象的语言来描述,因此带有参数的构造函数就是非常必要的);

 

 2,带有参数的构造函数:

    1,构造函数可以根据需要定义参数;

    2,一个类中可以存在多个重载的构造函数;

    3,构造函数的重载遵循 C++ 重载的规则;

    4,代码示例:

1 class Test
2 {
3 public:
4     Test(int v)
5     {
6         // use v to initialize member
7     }
8 };

   

 3,对象定义和对象声明的区别:

    1,对象定义:申请对象的空间并调用构造函数;

       1,第一步,必须申请对象所占用的内存空间;

       2,第二步,调用构造函数;

    2,对象声明:告诉编译器存在这样一个对象;

       1,对象在哪里定义的不知道,链接的时候回去找;

       2,预处理,编译器对源代码进行检查并生成目标文件,链接器在各个目标文件中寻找目标文件存在的一些名字;

       3,对象声明时,没有对象定义时的两个步骤;

    3,代码示例:

1 Test t;  // 定义对象并调用构造函数;
2 
3 Int main()
4 {
5     // 告诉编译器存在名为 t 的Test对象;
6     extern Test t;
7 
8     return 0;
9 }

    4,对象的声明中可以在构造函数参数中给出默认值,对象的定义中不能够在构 造函数参数中给出默认值;

   

 4,构造函数的自动调用(第一种初始化对象方式):

 1 #include <stdio.h>
 2 
 3 class Test
 4 {
 5 public:
 6     Test() 
 7     { 
 8         printf("Test()\n");
 9     }
10     
11     Test(int v) 
12     { 
13         printf("Test(int v), v = %d\n", v);
14     }
15 };
16 
17 int main()
18 {
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值