合工大计算机学院 程序设计 05第五章 类和对象.pptVIP

  • 3
  • 0
  • 约 62页
  • 2017-06-13 发布于湖北
  • 举报

合工大计算机学院 程序设计 05第五章 类和对象.ppt

§5.4 对象的初始化 5.4.2 析构函数 int main() { DEMO_CLASS obj(30);// 声明一个对象 cout This is the end of main().\n; return 0; } 运行结果: Initial value is 30 This is the end of main(). Goodbye! §5.4 对象的初始化 5.4.3 对象成员的初始化 对象成员:在一个类中声明具有类类型的数据成员 初始化对象成员的方法:在本类的构造函数中调用这些对象成员所属类的构造函数,其一般形式: 类名::类名(形参表):初始化列表 { …… } class A { …… public: B::B():obj2(10,20), obj1(5,3) A(int a, float b); { …… }; } class B { A obj1, obj2; public: B(); } §5.4 对象的初始化 5.4.3 对象成员的初始化 说明 如果有多个对象成员,对象成员构造函数的调用次序取决于这些成员在类中声明的次序。 执行次序: 创建类的对象时,调用此类的构造函数,先根据初始化列表调用对象成员的构造函数,初始化对象成员,然后才执行本身的构造函数的函数体。 析构函数调用的次序相反。 §5.4 对象的初始化 5.4.3 对象成员的初始化 程序5.4.8 //程序:OBJECT.CPP //功能:演示类中包含有另一个类的对象初始化 // 在构造函数和析构函数中加入输出以便跟踪 #includeiostream.h class Object { int val; public: Object( ); //构造函数 Object( int i ); //构造函数 ~Object( ); //析构函数 }; Object::Object( ) { val=0; cout\n Default constructor for Object.\n; } §5.4 对象的初始化 5.4.3 对象成员的初始化 Object::Object( int i) //构造函数定义 { val=i; cout\n Constructor for Object: valendl; } Object::~Object( ) //析构函数定义 { cout\n Destructor for Object: valendl;} class Container //定义新类,它含Object的对象 { private: int date; Object one; //对象成员 Object two; //对象成员 public: Container( ); //构造函数 Container( int i, int j, int k); //构造函数 ~Container( ); //析构函数 }; §5.4 对象的初始化 5.4.3 对象成员的初始化 Container::Container( ) //构造函数定义 { date=0; cout\n Default constructor for Container.\n; } Container::Container( int i, int j, int k):two(i),one(j) { date=k; cout\n Constructor for Container.\n; } Container::~Container( ) { cout\n Destructor for Container.\n; } void main( ) //演示程序 { cout\n... Entering main ...\n; Container obj(5,6,10); cout\n... Exiting main ...\n; } §5.4 对象的初始化 5.4.3 对象成员的初始化 执行结果为: ... Entering main ... Constructor for Object: 6 //对象one调用构造函数 Constructor for Object: 5 //对象two调用构造函数 Constructor for Container. //调用Container的构造函数 ...Exiting main ... Destructor for Container. //调用Co

文档评论(0)

1亿VIP精品文档

相关文档