试题 百分网手机站

计算机二级C++考点类的转换

时间:2020-11-11 14:10:02 试题 我要投稿

2017计算机二级C++考点类的转换

  引导语:类的转换是计算机二级C++的一个考点,以下是百分网小编分享给大家的2017计算机二级C++考点类的转换,欢迎阅读!

  类的转换

  C++的内部数据类型遵循隐式类型转换规则。假设某个表达市中使用了一个短整型变量,而编译器根据上下文认为这儿需要是的长整型,则编译器就会根据类型转换规则自动把它转换成长整型,这种隐式转换出现在赋值、参数传递、返回值、初始化和表达式中。我们也可以为类提供相应的转换规则。

  对一个类建立隐式转换规则需要构造一个转换函数,该函数作为类的成员,可以把该类的对象和其他数据类型的对象进行相互转换。声明了转换函数,就告诉了编译器,当根据句法判定需要类型转换时,就调用函数。

  有两种转换函数。一种是转换构造函数;另一种是成员转换函数。需要采用哪种转换函数取决于转换的方向。

  转换构造函数

  当一个构造函数仅有一个参数,且该参数是不同于该类的一个数据类型,这样的`构造函数就叫转换构造函数。转换构造函数把别的数据类型的对象转换为该类的一个对象。和其他构造函数一样,如果声明类的对象的初始化表同转换构造函数的参数表相匹配,该函数就会被调用。当在需要使用该类的地方使用了别的数据类型,便宜器就会调用转换构造函数进行转换。

  #include iostream.h

  #include time.h

  #include stdio.h

  class Date

  {

  int mo, da, yr;

  public:

  Date(time_t);

  void display();

  };

  void Date::display()

  {

  char year[5];

  if(yr<10)

  sprintf(year,0%d,yr);

  else

  sprintf(year,%d,yr);

  cout< }

  Date::Date(time_t now)

  {

  tm* tim=localtime(&now);

  da=tim->tm_mday;

  mo=tim->tm_mon+1;

  yr=tim->tm_year;

  if(yr>=100) yr-=100;

  }

  int main()

  {

  time_t now=time(0);

  Date dt(now);

  dt.display();

  return 0;

  }

  本程序先调用time()函数来获取当前时间,并把它赋给time_t对象;然后程序通过调用Date类的转换构造函数来创建一个Date对象,该对象由time_t对象转换而来。time_t对象先传递给localtime()函数,然后返回一个指向tm结构(time.h文件中声明)的指针,然后构造函数把结构中的日月年的数值拷贝给Date对象的数据成员,这就完成了从time_t对象到Date对象的转换。

【2017计算机二级C++考点类的转换】相关文章:

1.计算机二级C++考点:C++语言概述

2.计算机二级C++函数考点

3.计算机二级C++考点:基本控制结构

4.C++的类型转换介绍

5.2017年9月全国计算机二级C++考点每日一练

6.计算机二级C++考试强化训练题2017

7.2017年9月全国计算机二级C++

8.2017计算机二级《C++》模拟题及答案

9.计算机二级C++模拟题及答案2017