c++——对象的构造

  

一。对象的构造(上)

  

<强>问:对象中成员变量的初始值是多少吗?

  
 <代码> # include & lt; iostream>
  
  使用名称空间性病;
  
  类测试
  {
  私人:
  int我;
  int j;
  公众:
  int getI ()
  {
  返回我;
  }
  int getJ ()
  {
  返回j;
  }
  };
  
  int main ()
  {
  测试t1;
  
  cout<& lt;“t1.getI ()=" & lt; & lt; t1.getI () & lt; & lt; endl;
  cout<& lt;“t1.getJ ()=" & lt; & lt; t1.getJ () & lt; & lt; endl;
  } 
  

输出的结果为
 C + + - - - - - -对象的构造

  
 <代码> # include & lt; iostream>
  
  使用名称空间性病;
  
  类测试
  {
  私人:
  int我;
  int j;
  公众:
  int getI ()
  {
  返回我;
  }
  int getJ ()
  {
  返回j;
  }
  };
  
  测试gt;
  
  int main ()
  {
  cout<& lt;“gt.getI ()=" & lt; & lt; gt.getI () & lt; & lt; endl;
  cout<& lt;“gt.getJ ()=" & lt; & lt; gt.getJ () & lt; & lt; endl;
  
  测试t1;
  
  cout<& lt;“t1.getI ()=" & lt; & lt; t1.getI () & lt; & lt; endl;
  cout<& lt;“t1.getJ ()=" & lt; & lt; t1.getJ () & lt; & lt; endl;
  
  测试* pt=新的测试;
  
  cout<& lt;“pt→getI ()=" & lt; & lt; pt→getI () & lt; & lt; endl;
  cout<& lt;“pt→getJ ()=" & lt; & lt; pt→getJ () & lt; & lt; endl;
  
  删除pt;
  
  返回0;
  
  }
   
  

结果如图
 C + + - - - - - -对象的构造“> <br/> <强>小结</强> <br/>从程序设计的角度,对象只是变量<br/> 1。在栈上创建对象时,成员变量初始为随机值<br/> 2。在堆上创建对象时,成员变量初始值为随机值<br/> 3。在静态区创建对象时,成员变量初始值为0值</p>
  <p> <>强解决方案:</强> <br/> 1。在类中提供一个公共的intialize函数<br/> 2。对象创建后立即调用intialize函数进行初始化<br/>示例</p>
  <pre> <代码> # include & lt; iostream>
  
  使用名称空间性病;
  
  类测试
  {
  私人:
  int我;
  int j;
  公众:
  int getI ()
  {
  返回我;
  }
  int getJ ()
  {
  返回j;
  }
  无效的初始化()
  {
  i=1;
  j=2;
  }
  };
  
  测试gt;
  
  int main ()
  {
  gt.initialize ();
  cout<& lt;“gt.getI ()=c++——对象的构造