计算机等级二级C++考试知识点
c++语言数据类型可以分为两大类:基本类型和引用类型。下面是小编整理的计算机等级二级C++考试知识点,希望大家认真阅读!
重载运算符
重载是由ger发现的。
一。重载运算符的时机
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;
也可以显式的调用重载运算符函数:
ator + (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+=;
while(n >=dys[-1])
{
n-=dys[-1];
if(++==13)
{
=1;
dt,yr++;
}
}
=n;
return dt;
}
int main()
{
Date olddate(1,1,2005);
Date newdate;
newdate=olddate+100;
lay();
return 0;
}
-
2017年计算机一级考试试题及答案
全国计算机等级考试时间2017年3月25-28日。你都做了哪些准备?下面小编为大家分享一些关于计算机一级考试试题及答案,细微可以帮助大家!1、下面(B)视图最适合移动、复制幻灯片。A)普通B)幻灯片浏览C)备注页D)大纲2、如果希望将幻灯片由横排变为竖排,需要更换(A)。...
-
2016年计算机等级考试真题(含答案)
2016上半年的计算机考试已经结束了,下面本站小编为大家分享最新的计算机考试真题及答案,希望对大家有参考作用!一、选择题1、第一台计算机ENIAC淡生于1946年,是电子管计算机;第二代是晶体管计算机;第三代是中小规模集成电路;第四代是大规模集成电路;2、计算机的应...
-
J2EE的学习技巧
j2ee是java中的核心技术之一,主要用于进行企业解决方案的高效开发、编写、管理工作,在java2平台中j2ee进行了升级,更多优点和改进成为java工程师必须掌握的技术之一,那么j2ee应该怎么学呢?第一步:学习java基本语法,慢慢熟悉面向对象的编程理念(封装、继承和多态)封装...
-
我的JavaEE学习路线图
从学习Java开发到现在虽然也已经快三年了,但是要说到分享一下经验实在是不敢当。权当是对自己的一个总结吧,希望大家不吝指教,互相交流。照旧,还是现来整理一下我学习Java的一个路线图吧,然后按照这个路线图来谈谈我的一些感受。一、Java核心这是学习Java的基础,掌握...