码迷,mamicode.com
首页 > 其他好文 > 详细

关于构造函数对象指针等问题

时间:2015-12-31 19:24:53      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:

/*关于构造函数对象指针及是否调用构造函数的问题*/

#include<iostream>
using namespace std;
class Date {
  public:
   Date(){ ye=1; me=2; de=3;}
   Date(int y,int m,int d);
   void print();
   private:
    int ye;
    int me;
    int de;
};
void Date::print(){
  cout<<ye;
}
 /*Date::Date(int y,int m,int d){
  this.y=y;
  this.m=m;
  this.d=d;
}*/
int main() {
 Date d;
 int i;
  typedef Date *  pdate;
/*  pdate mydate[10];//正确,没有调用构造函数,因为定义了10个对象的指针
  mydate[1]=&d;
  mydate[1]->print();
  以上定义mydate的语句也可以写成下面的方式,用指针的形式来定义
  */
  pdate * mydate=new pdate[10];//也正确,在指针数组的每一个指针被重新赋值,以指向一个不同的Date对象。
  /*这时可以写如下语句*/
  /*
  for(i=0;i<10;i++)
  mydate[i]=new Date(y,m,d);
  */
  mydate[1]=&d;
  mydate[1]->print();
return 0;
}

内联函数

/*关于构造函数对象指针及是否调用构造函数的问题*/

#include<iostream>
using namespace std;
class Date {
  public:
   Date(){ ye=1; me=2; de=3;}
   Date(int y,int m,int d);
   void Set(int m,int d,int y) {/*内联成员函数的隐式表示*/
   cout<<m<<" "<<d<<" "<<y<<endl;
   }
    void ok();
   void print();
   private:
    int ye;
    int me;
    int de;
};
inline void Date::ok(){/*内联函数的显式声明*/
   cout<<222<<endl;
}
/*内联函数定义在类的内部或者外部没有本质的区别*/
void Date::print(){
  cout<<ye<<endl;
}
 Date::Date(int y,int m,int d){
  this->ye=y;
  this->me=m;
  this->de=d;
}
int main() {
 Date d(2,3,4);
 int i;
  Date *pd=new Date;//定义指向对象的指针,并让它指向一个新建立的对象
  pd->print();
  pd->Set(11,11,11);
  pd->ok();
return 0;
}

 结果:1

         11 11 11

         222

关于构造函数对象指针等问题

标签:

原文地址:http://www.cnblogs.com/thefirstfeeling/p/5092492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!