C++编程(8)

Educn 1029 class date class date int d m y public int

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: 得全局变量的方便,而又无须受到访问全局变 量之累 对于所有对象,静态成员只有唯一的一个副本 使用一个静态成员,不必提及任何对象 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 静态成员 class Date{ void f() int d, m, y; { static Date default_date; Date::set_default(4,5,1945); public: } Date(int dd=0, // 静态成员和函数需要在某个地方另行 int mm=0, int yy=0); 定义 //… static void set_default(int, int, int); Date Date::default_date(16,12,1770); } void Date::set_default(int d, int m, int y) Date::Date(int dd, int mm, int yy) { { Date::default_date = d = dd? dd : default_date.d; Date(d,m,y); m = mm? mm : default_date.m; } y = yy? yy : default_date.y; //Date()相当于Date::default_value } Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 10.2.5 类对象的复制 按照默认约定,类对象可以复制,例如:Date d = today; // 复制初始化 按照默认方式,类对象的复制就是其中各个成员的 复制,如果某个类所需要的不是这种默认方式,那 么就可以定义一个复制构造函数X::X(const X&),由它提供所需要的行为 类似的,类成员也可以通过赋值进行按照默认方式 的复制,例如:Date d; d = today; 对于赋值复制,默认语义是按照成员复制,用户可 以定义合适的赋值运算符来完成自己需要的复制 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 10.2.6 常量成员函数 可以为Date类提供一些函数用来检查一个Date的值 注意,函数参数表后面的const,表示该函数不会修改Date 的状态 class Date{ int d, m, y; public: int day() const {return d;} int month() const; int year() const; } inline int Date::year() const { return y; // return y++; Error } void f(Date& d, const Date& cd) { int i = d.year(); //ok d.add_year(1); // ok int j = cd.year(); // ok cd.add_year(1); //Error } // const或者非const对象都可以...
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