(二)第10章类和对象10.1构造函数10.2析构函数10.3对象与指针
0 第10章 类和对象(二) 10.1 构造函数 10.2 析构函数 10.3 对象与指针
10.1构造函数类是一种抽象的数据类型,其数据成员不能在声明时初始化。错误示例:ClassDateint day=10;Yint month=3;int year=2017; );对象也要先赋值,后使用在使用一个对象时,它的每个数据成员都应该有确定的值。对象的初始化体现在对数据成员的赋值
1 10.1构造函数 ◆ 类是一种抽象的数据类型,其数据成员不能在声明时初 始化。 错误示例: Class Date { int day=10; int month=3; int year=2017; }; ◆ 对象也要先赋值,后使用。 ◆ 在使用一个对象时,它的每个数据成员都应该有确定 的值。 ◆ 对象的初始化体现在对数据成员的赋值
10.1构造函数如果一个类中所有的成员(包括数据成员和成员函数都是公有的,那么在定义对象时,可以同时对其数据成员进行初始化。示例:Class Date1public: int day;int month;int year; );Dated1={10,3,2017};/将d1初始化为2017年3月10号注意:如果类中有私有或保护成员就不能这样进行初始化,只能使用公有成员函数对它们赋值
2 10.1构造函数 ◆ 如果一个类中所有的成员(包括数据成员和成员函数) 都是公有的,那么在定义对象时,可以同时对其数据成 员进行初始化。 示例: Class Date { public: int day; int month; int year; }; Date d1={10, 3, 2017}; //将d1初始化为2017年3月10号 注意:如果类中有私有或保护成员就不能这样进行初始化,只能使 用公有成员函数对它们赋值
10.1构造函数构造函数(constructor)用于对对象进行初始化的一个或一组函数声明格式:<类名>(<参数表>)构造函数是特殊的公有成员函数,其特征如下:1.函数名与类名相同2.构造函数无返回值类型3.在新的对象被创建时,自动调用该对象所属的类的构造函数4.构造函数可以重载,提供初始化类对象的不同方法5.构造函数即可以作为内联函数在类内定义,也可以在类外定义
3 10.1构造函数 构造函数(constructor) 用于对对象进行初始化的一个或一组函数。 声明格式: <类名>(<参数表>); 构造函数是特殊的公有成员函数,其特征如下: 1.函数名与类名相同。 2.构造函数无返回值类型。 3.在新的对象被创建时,自动调用该对象所属的类的构造 函数。 4.构造函数可以重载,提供初始化类对象的不同方法。 5.构造函数即可以作为内联函数在类内定义,也可以在类外 定义
对象的初始化和构造函数例10-1定义一个带构造函数的日期类。#include<iostream>usingnamespacestdclass DateDate::Date()YJint day,month,year;public:year = 1900;Date();I构造函数,无返回值类型month = 1;voidinit(int,int,int);I/对数据成员赋值day = 1;void print_ymd();void print_mdy();
4 一、对象的初始化和构造函数 例10-1 定义一个带构造函数的日期类。 #include <iostream> using namespace std; class Date { int day,month,year; public: Date(); //构造函数,无返回值类型 void init(int,int,int); //对数据成员赋值 void print_ymd(); void print_mdy(); }; Date::Date() { year = 1900; month = 1; day = 1; }