• 类的属性


    类的属性-初始化对象

    从程序设计的角度,对象只是变量,因此:

     -再栈上创建对象时,成员变量初始化为随机值;

     -在堆上创建变量时,成员变量初始化为随机值;

     -在静态存储区创建变量时, 成员变量初始化为 0 值。

    生活中的对象都是初始化后才能上市。

    初始状态是普遍存在的状态。

    如何解决?

    解决方案:

    -调用initial 函数;

    而且一旦生成了对象,就要必须调用初始化函数。实例一

    就像我们平时做事情的时候必须要有先后顺序,那么初始化函数必须最先调用,那么我们就不用自己手工调用啊,自己调用万一忘记?何不把对象的初始化直接放置在里面?实例二

    实例一:

     1 #include <stdio.h>
     2 
     3 class Test
     4 {
     5 private:
     6     int i;
     7     int j;
     8 public:
     9     int getI() { return i; }
    10     int getJ() { return j; }
    11     void initialize()
    12     {
    13         i = 1;
    14         j = 2;
    15     }
    16 };
    17 
    18 Test gt;
    19 
    20 int main()
    21 {
    22     gt.initialize();
    23     
    24     printf("gt.i = %d
    ", gt.getI());
    25     printf("gt.j = %d
    ", gt.getJ());
    26     
    27     Test t1;
    28     
    29     //t1.initialize();
    30     
    31     printf("t1.i = %d
    ", t1.getI());
    32     printf("t1.j = %d
    ", t1.getJ());
    33     
    34     t1.initialize();
    35     
    36     Test* pt = new Test;
    37     
    38     pt->initialize();
    39     
    40     printf("pt->i = %d
    ", pt->getI());
    41     printf("pt->j = %d
    ", pt->getJ());
    42     
    43     delete pt;
    44     
    45     return 0;
    46 }
     1 #include <stdio.h>
     2 
     3 class Test
     4 {
     5 private:
     6     int i;
     7     int j;
     8 public:
     9     int getI() { return i; }
    10     int getJ() { return j; }
    11     Test()
    12     {
    13         printf("Test() Begin
    ");
    14         
    15         i = 1;
    16         j = 2;
    17         
    18         printf("Test() End
    ");
    19     }
    20 };
    21 
    22 Test gt;
    23 
    24 int main()
    25 {
    26     printf("gt.i = %d
    ", gt.getI());
    27     printf("gt.j = %d
    ", gt.getJ());
    28     
    29     Test t1;
    30     
    31     printf("t1.i = %d
    ", t1.getI());
    32     printf("t1.j = %d
    ", t1.getJ());
    33     
    34     Test* pt = new Test;
    35     
    36     printf("pt->i = %d
    ", pt->getI());
    37     printf("pt->j = %d
    ", pt->getJ());
    38     
    39     delete pt;
    40     
    41     return 0;
    42 }

    构造函数没有返回值,而且与类名相同。

  • 相关阅读:
    阻塞IO与非阻塞IO
    Java 中 IO 流分为几种?BIO,NIO,AIO 有什么区别?
    linux7启动时自动启动zookeeper和Tomcat
    linux7下配置Tomcat
    背景图片变色,或者背景渐变
    Linux7版本网络配置
    linux7中jdk安装
    linux7中zookeeper的安装-依赖于jdk
    Avoided redundant navigation to current location
    Auto Fix is enabled by default. Use the single string form
  • 原文地址:https://www.cnblogs.com/lemaden/p/10105209.html
Copyright © 2020-2023  润新知