收藏 分销(赏)

类和结构操作符.doc

上传人:pc****0 文档编号:7834221 上传时间:2025-01-19 格式:DOC 页数:9 大小:91KB 下载积分:10 金币
下载 相关 举报
类和结构操作符.doc_第1页
第1页 / 共9页
类和结构操作符.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
C++的类操作符  呵呵,不学C++,还真弄不懂C++类和结构操作时,什么时候用何种操作符。  类和结构操作符有三种:::*、.* 和->,以便引入安全的成员指针。这些成员指针既可以指向成员函数,也可以指向变量。 C++语言基础-C++操作符 时间:2007-05-06 - 操作符(operator)用于操作数据。操作符进行计算、检查等式、进行赋值、操作变量和进行其它更奇怪的工作。C++中有许多操作符,这里不想列出全部,只列出最常用的操作符,如下表所示。表1.2常用C++操作符操作符说明举例 算术运算符 + 加 x=y+z; - 减 x=y-z; * 乘 x=y*z; / 除 x=y/z; 赋值运算符 = 赋值 x=10; += 赋值与和 x+=10;(等于x=x+10;) -= 赋值与减 x-=10; *= 赋值与乘 x*=10; \= 赋值与除 x\=10; &= 赋值位与 x&=0x02; |= 赋值位或 x|=0x02; 逻辑操作符 && 逻辑与 if(x && 0xFF) {...} || 逻辑或 if(x || 0xFF) {...} 等式操作符 == 等于 if(x == 10) {...} != 不等于 if(x != 10) {...} < 小于 if(x < 10) {...} > 大于 if(x > 10) {...} <= 小于或等于 if(x <= 10) {...} >= 大于或等于 if(x >= 10) {...} 一元操作符 * 间接操作符 int x=*y; & 地址操作符 int* x=&y; ~ 位非 x &=~0x02; ! 逻辑非 if(!valid) {...} ++ 递增操作符 x++(等于x=x+1;) -- 递减操作符 x--; 类和结构操作符 :: 范围解析 MyClass :: SomeFunction(); -> 间接成员 MyClass-> SomeFunction(); · 直接成员 MyClass . SomeFunction(); 可以看出,这个清单长了些,没法一下子记住。使用C++时,你会慢慢熟悉这些操作符的。必须指出,递增操作符既可用作前递增(++x),也可用作后递增(x++)。前递增操作符告诉编译器先递增再使用变量,而后递增操作符则让编译器先使用变量值再递增。例如下列代码: int x = 10; cout << "x = " << x++ << end1; cout << "x = " << x << end1; cout << "x = " x << end1; cout << "x = " << ++x << end1; 输出结果如下: x=10 x=11 x=12 x=12 递减操作符也是这样,这里不想将这些内容讲得太深,但读者可以耐心阅读下去,正如彭兹对奥古斯特所说,“奥古,耐心点,罗马不是一天建成的”。说明 在C++中操作符可以过载(overload)。编程人员可以通过过载标准操作符让它在特定类中进行特定运行。例如,可以在一个类中过载递增操作符,让它将变量递增10而不是递增1。操作符过载是个高级C++技术,本书不准备详细介绍。你也许会发现,有些操作符使用了相同的符号。符号的意义随情境的不同而不同。例如,星号(*)可以作为乘号、声明指针或取消指针引用。这初看起来有点乱,事实上,C++编程老手有时也觉得有点乱。多实践,你会慢慢适应的。本书有许多例子介绍这些操作符。读者不必死记每个操作符的作用,而可以在学习中通过程序和码段去理解其作用。 C++中的函数 函数是与主程序分开的码段。这些码段在程序中需要进行特定动作时调用(执行)。例如,函数可能取两个值并对其进行复杂的数学运算。然后返回结果,函数可能取一个字串进行分析,然后返回分析字串的一部分。新术语 函数(function)是与主程序分开的码段,进行预定的一个服务。函数是各种编程语言的重要部分,C++也不例外。最简单的函数不带参数,返回void(表示不返回任何东西),其它函数可能带一个或几个参数并可能返回一个值。函数名规则与变量名相同。图1.5显示了函数的构成部分。新术语 参数(parameter)是传递给函数的值,用于改变操作或指示操作程度。 返回类型 函数名 参数表 ↓ ↓ ↓ int SomeFunction(int x, int y){ 函数体→int z = (x * y); return z; ↑返回语句 } 图1.5函数的构成部分使用函数前,要先进行声明。函数声明或原型(prototype)告诉编译器函数所取的参数个数、每个参数的数据类型和函数返回值的数据类型。清单1.4列示了这个概念。新术语 原型(prototype)是函数外观的声明或其定义的说明。 清单1.4Muttiply.cpp 1: #include <iostream.h> 2: #include <conio.h> 3: #pragma hdrstop 4: 5: int multiply(int,int) 6: void showResult(int); 7: 8:int main(int argc,char **argv); 9:{ 10: int x,y,result; 11: cout << end1 << "Enter the first value:"; 12: cin >> x; 13: cout << "Enter the second value: "; 14: cin >> y; 15: result=multiply(x,y); 16: showResult(result); 17: cout << end1 << end1 << "Press any key to continue..."; 18: getch(); 19: return 0 20: } 21: 22: int multiply(int x,int y) 23: { 24:return x * y; 25: } 26: 27: void showResult(int res) 28: { 29:cout << "The result is: " << res <<end1; 30: } 这个程序的11到14行用标准输入流cin向用户取两个数字,第15行调用multiply()函数将两个数相乘,第16行调用showResult()函数显示相乘的结果。注意主程序前面第5和第6行multiply()和showResult()函数的原型声明。原型中只列出了返回类型、函数名和函数参数的数据类型。这是函数声明的最基本要求。函数原型中还可以包含用于建档函数功能的变量名。例如,multiply()函数的函数声明可以写成如下:int multiply(int firstNumber,int secondNumber);这里函数multiply()的作用很明显,但代码既可通过说明也可通过代码本身建档。注意清单1.4中函数multiply()的定义(22到25行)在主函数定义码段(8到20行)之外。函数定义中包含实际的函数体。这里的函数体是最基本的,因为函数只是将函数的两个参数相乘并返回结果。清单1.4中函数multiply()可以用多种方法调用,可以传递变量、直接数或其它函数调用的结果: result = multiply(2,5);//passing literal values result = multiply(x,y); //passing variables showResult(multiply(x,y)); //return value used as a //parameter for another function multiply(x,y);//return value ignored 注意 最后一例中没有使用返回值。本例中调用函数multiply()而不用返回值没什么道理,但C++编程中经常忽略返回值。有许多函数是先进行特定动作再返回一个数值,表示函数调用的状态。有时返回值与程序无关,可以忽略不计。如果将返回值忽略,则只是放弃这个值,而不会有别的危害。例如,前面的样本程序中忽略了getch()函数的返回值(返回所按键的ASCII值)。函数可以调用其它函数,甚至可以调用自己,这种调用称为递归(recursion)。这在C++编程中是个较复杂的问题,这里先不介绍。新术语 递归(recursion)就是函数调用自己的过程。本节介绍的函数指的是C或C++程序中的独立函数(独立函数不是类的成员)。C++中的独立函数可以和C语言中一样使用,但C++将函数进一步深化,将在稍后介绍C++时介绍。 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 C++操作符 (2009-06-04 11:00:26) 转载▼ 标签: 杂谈 · 箭头操作符 点操作符用于获取类类型对象的成员: Sales_item item1; item1.same_isbn(item2); 若是有一个指向item1对象的指针: Sales_item *sp=&item1; 则必须要先解引用,才能使用点操作符: (*sp).same_isbn(item2); 并且括号是不能省略的,因为解引用的优先级要大于点操作。 由于编程很容易忘记括号,而这类代码要经常使用,所以C++为在点操作符后使用的解引用操作定义了一个同义词:箭头操作符(->):   sp->same_isbn(item2);//等价于(*sp).same_isbn(item2); · sizeof 语法形式:  sizeof(type name);  sizeof(expr);  sizeof expr;  将sizeof用于expr时,并没有计算表达式的值,故sizeof *p中,p可指向无效地址,因为p不需被解析。        对char 类型或值为char类型的表达式做sizeof操作,得1        对引用类型做sizeof操作将返回存放引用类型的所需空间大小        对指针做sizeof操作将返回存放指针所需内存大小,如果要获取该指针所指向的对象大小,则必须解引用。        对数组做sizeof操作等效于将对其元素类型做sizeof操作的结果乘上元素个数。因为sizeof返回整个数组在内存中的存储长度,所以用sizeof数组的结果除以sizeof其元素类型为数组元素个数。int sz=sizeof(ia)/sizeof(*ia); · 操作符优先级及结合顺序  操作符  结合顺序  功能  用法 :: :: ::  左 全局作用域 类作用域 名字空间作用域  ::name class::name namespace::name . -> [] () ()  左 成员选择 成员选择 下标 函数调用 类型构造 object.member pointer->member variable[expr] name(expr) type(expr_list) ++ -- typeid typeid 显示类型转换 右 后自增 后自减 类型ID 运行时类型ID 类型转换 lvalue++ lvalue-- typeid(type) typeid(expr) cast_name<type>(expr) sizeof sizeof ++ -- ~ ! - + * & () new delete delete []  右 对象大小 类型大小 前自增 前自减 位求反 逻辑非 一元负号 一元正号 解引用 取地址 类型转换 创建对象 释放对象 释放数组 sizeof expr sizeof(type) ++lvalue --lvalue ~expr !expr -expr +expr &expr (type)expr new type delete expr delete [] expr ->* .* 左 指向成员操作的指针 指向成员操作的指针 ptr->*ptr_to_member obj.*ptr_to_member * / % 左 乘 除 求模 expr*expr expr/expr expr%expr + _ 左 加 减 expr+expr expr-expr << >> 左 位左移 位右移 expr<<expr expr>>expr < <= > >= 左 小于 小于等于 大于 大于等于 expr<expr expr<=expr expr>expr expr>=expr == != 左 相等 不相等 expr==expr expr!=expr  & 左 位与 expr&expr  ^ 左 位异或 expr^expr | 左 位或 expr|expr && 左 逻辑与 expr&&expr || 左 逻辑或 expr||expr ?: 右 条作操作 expr?expr:expr = *=,/=,%=,+=,-=,<<=, >>=,&=,|=,^= 右 赋值操作 复合赋值操作 lvalue=expr lvalue+=expr 等等 throw 右  抛出异常 throw expr , 左  逗号 expr,expr /////////////////////////// 对于C++操作符浅析说明 2010-01-19 13:32 佚名 计世网 我要评论(0) 字号:T | T 下面详细介绍C++操作符的问题列举,这些内容都是一些门户网站和技术论坛找到的,中间可能有不少错误是我没有挑出的,欢迎大家指正。 AD: 以下介绍一段C++操作符关于操作符重载的程序,让它将变量递增10而不是递增1,操作符过载是个高级C++技术,在使用时一定会使许多编程人员头花眼胀的,好了看了本文你就会解决这些事情。 如下表所示。常用C++操作符说明举例: 1. + 加 x=y+z;    2.   3. - 减 x=y-z;    4.   5. * 乘 x=y*z;    6.   7. / 除 x=y/z;    8.   9. 赋值运算符    10.   11. = 赋值 x=10;    12.   13. += 赋值与和 x+=10;(等于xx=x+10;)    14.   15. -= 赋值与减 x-=10;    16.   17. *= 赋值与乘 x*=10;    18.   19. \= 赋值与除 x\=10;    20.   21. &= 赋值位与 x&=0x02;    22.   23. |= 赋值位或 x|=0x02;    24.   25. 逻辑操作符    26.   27. && 逻辑与 if(x && 0xFF) {...}    28.   29. || 逻辑或 if(x || 0xFF) {...}    30.   31. 等式操作符    32.   33. == 等于 if(x == 10) {...}    34.   35. != 不等于 if(x != 10) {...}    36.   37. < 小于 if(x < 10) {...}    38.   39. > 大于 if(x > 10) {...}    40.   41. <= 小于或等于 if(x <= 10) {...}    42.   43. >= 大于或等于 if(x >= 10) {...}    44.   45. 一元操作符    46.   47. * 间接操作符 int x=*y;    48.   49. & 地址操作符 int* x=&y;    50.   51. ~ 位非 x &=~0x02;    52.   53. ! 逻辑非 if(!valid) {...}    54.   55. ++ 递增操作符 x++(等于xx=x+1;)    56.   57. -- 递减操作符 x--;    58.   59. 类和结构操作符    60.   61. :: 范围解析 MyClass :: SomeFunction();    62.   63. -> 间接成员 MyClass-> SomeFunction();    64.   65. · 直接成员 MyClass . SomeFunction();   可以看出,这个清单长了些,没法一下子记住。使用C++时,你会慢慢熟悉这些操作符的。必须指出,递增操作符既可用作前递增(++x),也可用作后递增(x++)。前递增操作符告诉编译器先递增再使用变量,而后递增C++操作符则让编译器先使用变量值再递增。例如下列代码: 1. int x = 10;    2.   3. cout << "x = " << x++ << end1;    4.   5. cout << "x = " << x << end1;    6.   7. cout << "x = " x << end1;    8.   9. cout << "x = " << ++x << end1;    10. x=10    11.   12. x=11    13.   14. x=12    15.   16. x=12    递减操作符也是这样,这里不想将这些内容讲得太深,但读者可以耐心阅读下去,正如彭兹对奥古斯特所说,“奥古,耐心点,罗马不是一天建成的”。说明 在C++中操作符可以过载(overload)。 编程人员可以通过过载标准操作符让它在特定类中进行特定运行。例如,可以在一个类中过载递增操作符,让它将变量递增10而不是递增1。操作符过载是个高级C++技术,本书不准备详细介绍。 你也许会发现,有些操作符使用了相同的符号。符号的意义随情境的不同而不同。例如,星号(*)可以作为乘号、声明指针或取消指针引用。这初看起来有点乱,事实上,C++编程老手有时也觉得有点乱。多实践,你会慢慢适应的。本书有许多例子介绍这些C++操作符。读者不必死记每个操作符的作用,而可以在学习中通过程序和码段去理解其作用。 C++中的函数 函数是与主程序分开的码段。这些码段在程序中需要进行特定动作时调用(执行)。例如,函数可能取两个值并对其进行复杂的数学运算。然后返回结果,函数可能取一个字串进行分析,然后返回分析字串的一部分。 新术语 函数(function)是与主程序分开的码段,进行预定的一个服务。函数是各种编程语言的重要部分,C++也不例外。最简单的函数不带参数,返回void(表示不返回任何东西),其它函数可能带一个或几个参数并可能返回一个值。函数名规则与变量名相同。图1.5显示了函数的构成部分。新术语 参数(parameter)是传递给函数的值,用于改变操作或指示操作程度。 · 漫谈C++类的静态成员 · 怎么用C++封装Socket库 · 对于C++标准程序库介绍 · 对于C++标准程序库介绍 · 详细说明C++代码编辑问题 这个程序的11到14行用标准输入流cin向用户取两个数字,第15行调用multiply()函数将两个数相乘,第16行调用showResult()函数显示相乘的结果。注意主程序前面第5和第6行C++操作符的原型声明。原型中只列出了返回类型、函数名和函数参数的数据类型。 这是函数声明的最基本要求。函数原型中还可以包含用于建档函数功能的变量名。例如,multiply()函数的函数声明可以写成如下:int multiply(int firstNumber,int secondNumber);这里函数multiply()的作用很明显,但代码既可通过说明也可通过代码本身建档。注意清单1.4中函数multiply()的定义(22到25行)在主函数定义码段(8到20行)之外
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服