C++编程(8)

Educn this date dateaddyearint n ifthis d29

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 习使用一个类也只需要考察其成员函数的定 义 该类中init函数的原因 1 有一个函数来设置对象的值总是有用的 2 数据的私用性也要求我们这么做 Beijing University of Posts & Telecommunications Beijing [email protected] 10.2.3 构造函数 采用init一类的函数提供对类对象的初始 化,这么做既不优美又容易出错(比如说, 忘记调用) 更好的途径是让程序员有能力去声明一个函 数,其明确目的就是去完成对象的初始化, 此类函数称为构造函数 构造函数具有与类相同的名字 Beijing University of Posts & Telecommunications Beijing [email protected] 构造函数 class Date{ //… Date(int, int, int); //构造函数 Constructor // ctor }; 若一个类有构造函数,这个 类的所有对象的初始化都将 通过对某个构造函数的调用 完成初始化,注意参数匹配 问题,可以创建多个构造函 数来以多种方式完成对象的 初始化工作 Date today = Date(23,6,1983); Date xmas(25,12,1990); // 简写形式 Date my_birthday; // Error 缺少初始式 Date release1_0(10,12); // Error 三个参数 class Date { int d, m, y; public: Date(int, int, int); Date(int, int); // 构造函数的重载 Date(int); Date(); } Beijing University of Posts & Telecommunications Beijing [email protected] 构造函数 class Date { int d, m, y; public: Date(int dd=0, int mm=0, int yy=0); //… } 也可以用带默认参数的 函数来取代函数重载 Date::Date(int dd, int mm, int yy) { d = dd? dd : today.d; m = mm? mm : today.m; y = yy? yy : today.y; } Beijing University of Posts & Telecommunications Beijing [email protected] 10.2.4 静态成员 为Date提供默认值的方式隐藏着一个重要问题: Date类现在依靠一个全局变量today 如果设定一个这样的变量,而只在Date类中使 用,用户会遇到很多不愉快的事情,而且维护工作 也变得麻烦 对此的解决方法是:创建一个static静态成员,可 以获...
View Full Document

This note was uploaded on 02/10/2014 for the course ECE C++ taught by Professor Xiaoshengtang during the Fall '13 term at BUPT.

Ask a homework question - tutors are online