zoukankan      html  css  js  c++  java
  • 类的属性

    类的属性-初始化对象

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

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

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

     -在静态存储区创建变量时, 成员变量初始化为 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 }

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

  • 相关阅读:
    Apache 安装后Error 403的故障排错方法(linux)
    ab接口压力测试工具使用
    php工具、拓展下载地址
    Jboss反序列化漏洞复现(CVE-2017-12149)
    Apache SSI 远程命令执行漏洞复现
    apache httpd多后缀解析漏洞复现
    IIS短文件名漏洞复现
    nginx文件名逻辑漏洞_CVE-2013-4547漏洞复现
    nginx CRLF(换行回车)注入漏洞复现
    nginx目录穿越漏洞复现
  • 原文地址:https://www.cnblogs.com/lemaden/p/10105209.html
Copyright © 2011-2022 走看看