计算机等级 百分网手机站

计算机等级二级C++考试知识点

时间:2017-05-17 14:52:55 计算机等级 我要投稿

计算机等级二级C++考试知识点

  c++语言数据类型可以分为两大类:基本类型和引用类型。下面是小编整理的计算机等级二级C++考试知识点,希望大家认真阅读!

  重载运算符

  重载是由P.J.Plauger发现的。

  一。重载运算符的时机

  1。需要在定义的对象间相互赋值时,重载赋值运算符

  2。需要在数字类型增加算术属性时,重载算术运算符

  3。需要为定义的对象进行逻辑比较时,重载关系运算符

  4。对于container,重载下标运算符[]

  5。需要从I/O流中读写对象时,重载 <<和>>运算符。

  6。重载成员指针运算符 - > 以实现smart指针

  7。在少数情况下重载new,delete运算符

  8。不重载其他运算符

  实际上任何用重载运算符完成的工作都可以使用成员函数来实现。

  重载的运算符可以和原来的运算符不一定有必然联系,例如我重载'+'运算马夫,可以不做加法运算,而是把字符串连接起来。当然你要是用'+'运算符来做减法运算,也是可以的,不过这不是明智之举。

  二。重载运算符的规则

  1。重载的运算符不能违反语言的'语法规则

  2。如果一个运算符可以放在两个操作数之间,就可以重载它来满足类操作的需要,哪怕这种用法原本为编译器不能接受。

  3。不能创造C++语言中没有的运算符

  4。下列运算符不能重载

  . 类成员运算符

  .* 成员指针运算符

  :: 域解析运算符

  ?: 条件表达式运算符

  5。重载时不能改变运算符的优先级

  三。运算符重载

  运算符重载是通过对运算符函数的重载来实现的。对于每一个运算符@,在C++中都对应一个运算符函数operator@,其中@为C++各种运算符。

  运算符函数的一般原型为:

  type operator@ (arglist)

  其中type为运算结果的类型,arglist为操作数列表。

  重载双目运算符

  在(五)我们已经介绍了重载赋值运算符,这里就不重新说明了。

  一。作为类成员函数的重载

  为了能进行类对象和一个整型值的加法运算,需要写一个类的成员函数来重载双目加法(+)运算符。该函数在类中的声明如下:

  Date operator + (int) const;

  函数的声明指出,返回值是一个Date类对象,函数名是运算符+,只有一个整型参数,而且函数是常量型的。当编译器发现某个函数以加上前缀operator的真实运算符作为函数名,就会把该函数当作重载运算符函数来处理。如果在表达式中,该运算符的左边是一个类对象,右边是一个参数类型的一个对象,那么重载运算符函数就会被调用。调用形式如下:

  Date dt(6,9,2005);

  dt=dt+100;

  也可以显式的调用重载运算符函数:

  dt.operator + (100);

  下面代码重载了双目加法运算符来计算一个整数和一个Date类对象之和,并且返回Date类对象。

  #include iostream.h

  class Date

  {

  int mo,da,yr;

  static int dys[];

  public:

  Date(int m=0,int d=0,int y=0)

  { mo=m; da=d; yr=y;}

  void display() const

  { cout < Date operator + (int) const;

  };

  int Date::dys[]={31,28,31,30,31,30,31,31,30,31,30,31};

  Date Date::operator+(int) const

  {

  Date dt=*this;

  n+=dt.da;

  while(n >=dys[dt.mo-1])

  {

  n-=dys[dt.mo-1];

  if(++dt.da==13)

  {

  dt.mo=1;

  dt,yr++;

  }

  }

  dt.da=n;

  return dt;

  }

  int main()

  {

  Date olddate(1,1,2005);

  Date newdate;

  newdate=olddate+100;

  newdate.display();

  return 0;

  }

【计算机等级二级C++考试知识点】相关文章:

1.2017计算机等级考试二级C++考试试题

2.2017计算机等级考试二级c++试题及答案

3.2016计算机等级考试二级C++上机模拟试题

4.全国计算机二级C++考试知识点

5.计算机等级考试二级Java重要知识点

6.2016计算机等级考试二级C++上机模拟试题及答案

7.计算机二级考试之C++基础知识点

8.计算机二级考试C++试题