单目运算符

谭浩强《C++面向对象程序设计》知识点总结

匿名 (未验证) 提交于 2019-12-03 00:27:02
输入:采用标准输入流对象 istream 和提取运算符 cin>> 输出:采用标准输出流对象 ostream 和插入运算符 cout<< 一名多用,要求重载函数的参数个数或类型与原来的不同 给功能相似的函数建立一个统一的模板 要求:函数的参数个数和原来的要相同 格式: template <typename T> 通用函数定义 相当于给变量起一个别名,变量和其引用共享同一内存空间 e.g. int a; int &b = a; //声明b是一个int型变量a的引用 String类 格式: new 类型(初值) //返回一个指向数据类型的指针 new 类型[ num ] //new一个含有num个元素的类型数组 delete [ ] 指针变量 //[ ]表示对数组空间操作,可选 2.1 瀵硅薄 包含作为属性的数据成员和作为行为的成员函数,成员函数用来对数据进行操作,以便实现某些功能。 面向过程程序设计: 程序=数据结构+算法 面向对象程序设计: 对象=数据结构+算法, 程序=对象s+消息 抽象 :将有关事物归纳集中,作用是表示同一类事物的本质。类是对象的抽象,而对象是类的具体表现形式。 封装 :将数据和操作数据的函数绑定在一起,将具体的实现细节隐藏起来,仅对外保留接口。 继承 :利用已有类建立新类,新类从已有类中获得其意义特性的机制。 多态

重载运算符学习心得

匿名 (未验证) 提交于 2019-12-03 00:21:02
1. 不改变运算符的优先级 2. 不改变运算符的结合性 3. 不改变运算符所需要的操作数 4. 不能创建新的运算符 5. 运算符函数可以重载为成员函数或者友元函数 } 类型 类名 默认版本 一元运算符 Object.operator op() 二元运算符 Objectl op objectr Objectl.operator op (objectr) 用成员函数重载运算符 Class x }; 此时当前对象作为运算符的左操作数,它时通过 this 指针隐含的传递给函数的。 { public: Complex( ) {real=0,imag=0;} Complex(double r,double i) {real=r; imag=i;} void display( ); private: double real; double imag; }; ComplexComplex:: operator + (Complex &c2) { return Complex(real+c2.real, imag+c2.imag);} void Complex::display( ){ cout<<"("<<real<<","<<imag<<"i)"<<endl;} int main( ){ Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1=";c1

运算符

匿名 (未验证) 提交于 2019-12-03 00:08:02
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 位运算符 算术运算符 算术运算符的注意问题   如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。   对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是?   “+”除字符串相加功能外,还能把非字符串转换成字符串.例如:System.out.println("5+5="+5+5); //打印结果是?   以下二者的区别: System.out.println('*' + '\t' +'*'); System.out.println("*" + '\t' +'*'); 赋值运算符  符号:=   当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。   java支持连续赋值, 例如 :    a = b = c = 100;    结果是a,b,c三个变量中的值都是100  扩展赋值运算符: +=, -=, *=, /=, %= 比较运算符(关系运算符) 比较运算符的结果都是boolean型,也就是要么是true,要么是false。 比较运算符“==”不能误写成“=” 。 逻辑运算符 &―逻辑与 | ―逻辑或

Java运算符

匿名 (未验证) 提交于 2019-12-02 21:53:32
3.运算符 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。包括:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。 3.1算术运算符: 正号: + 负号: - 连接符: + 注意: 1 )除: / 2 )取模: % :取余数 . 结果的符号取决于被模数( % 左边的数) )前 ++: 先自增 1 ,后做运算;后 ++: 先做运算,后自增 1 -------------------------------------------------------------------------- / 后 ++ //11 //10 ------------------------------------------------------------------------ // ǰ ++ //11 //11 ----------------------------------------------------------------------------- 4 )连接符 + : String字符串与其他数据类型只能做连接运算,且结果为String类型。 “+”除字符串相加功能外,还能把非字符串转换成字符串。 【举例】: class Testjia { // 输出: 5+5=55 // 输出: 93 // 输出: * * } 3.2赋值运算符

C++多态性总结

放肆的年华 提交于 2019-12-02 11:30:01
一,C++多态性概述 多态是指同样的消息被不同类型的对象接受时导致不同的行为。所谓消息是指对类的成员函数的调用,不同的行为是指不同的实现,也就调用不同的函数。换言之,多态指的就是用同样的接口访问功能不同的函数,从而实现“一个接口,多种方法”。 二,多态性分类 面向对象的多态性可以分为4类:重载多态,强制多态,包含多态,参数多态。前面两种统称专用多态,后面两种统称通用多态。 三,各种多态举例说明 1,重载多态: 重载多态包括前面学过的普通函数及类的成员函数的重载还有运算符的重载。 普通函数重载举例: int add(int x, int y) { return x + y; } double add(double x, double y) { return x + y; } float add(float x, float y) { return x + y; } 类的成员函数相当于函数在类的内部实现重载,在这儿就不详细说明了,跟普通函数重载大同小异。 下面重点介绍运算符号重载: 运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据导致不同的行为。 运算符重载可以分为重载为成员函数以及重载为非成员函数两种。 重载为成员函数: 其一般语法形式为: 返回类型 operator 运算符(形参表) { 函数体 } 例1:(单目运算符)实现复数类前置++,后置+

初级C++2类与对象

蓝咒 提交于 2019-12-01 12:12:21
对象 object |--属性 attribute |--行为 behaviour 调用对象中的函数就是向该对象传送一个消息 message 封装性 encapsulation |--一是将有关数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰 |--二是将对象中某些部分对外隐藏,即隐藏其内部细节,只留下少量接口,以便与外界联系,接受外界的消息,即信息隐藏 information hiding 抽象 abstraction 抽象的作用是表示同一类事物的本质。 类 继承与重用 软件重用 software reusability 多态性 polymorphism 面向过程:程序 = 数据结构 + 算法 面向对象:程序 = 对象s + 消息 ————————————————————————————————————— 类class 类是对象的抽象,对象是类的具体实例(instance) 类头 class head 类体 class body 成员列表 class member list 类中成员默认是private struct成员默认是public class 类名 { private: 私有数据和成员函数 public: 公用数据和成员函数 }; 成员访问限定符 member access specifier |--私有的 private

Java的运算符

▼魔方 西西 提交于 2019-12-01 09:59:41
运算符分类   运算符指明对操作数的运算方式.组成表达式的java操作符有很多种..运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,他们分别对应1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符,关系运算符,逻辑运算符,位运算符和其他运算符    操作数数目来分      单目运算符       ~(按位取反)、!(取非)、-(负号运算符)、++(自增)、--(自减)         列如 1 ~5 //按位取反 2 3 -6 boolean flg=true; 4 5 !flg //取非false 6 7 -5 //负号运算符-5 8 9 int a=5; 10 11 //这里一定要注意自增++的位置很重要,++在前是先计算后应用,++在后是先应用后计算 12 13 a++; //5 14 15 ++a;//6 16 17 //这里一定要注意自减--的位置很重要,--在前是先计算后应用,--在后是先应用后计算 18 19 a--; //5 20 21 --a; //4      双目运算符       +、-、*、/、%(取余) 1 6+5; //+运算符11 2 6-5; //-运算符1 3 6*5; //*运算符30 4 6/5; ///运算符1 这里注意两个整型相除是会舍去小数点后面的数值 5 7.25/5; //1.45

计算机中的逻辑语言用法及优先级

我怕爱的太早我们不能终老 提交于 2019-12-01 08:45:53
下面取自百度百科 https://baike.baidu.com/item/运算符优先级/4752611?fr=aladdin 关于优先级简单记就是:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -算术类型表达式 右到左 单目运算符 (type) 强制类型转换 (纯量数据类型)纯量表达式 ++ 自增运算符 ++纯量类型可修改左值表达式 单目运算符 -- 自减运算符 --纯量类型可修改左值表达式 单目运算符 * 取值运算符 *指针类型表达式 单目运算符 & 取地址运算符 &表达式 单目运算符 ! 逻辑非运算符 !纯量类型表达式 单目运算符 ~ 按位取反运算符 ~整型表达式 单目运算符 sizeof 长度运算符 sizeof 表达式 sizeof(类型) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式%整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 整型表达式<<整型表达式

分析一套源代码的代码规范和风格并讨论如何改进优化代码

泪湿孤枕 提交于 2019-12-01 07:08:38
这里选择了github上的一个开源项目:360Controller做介绍,分析这套源代码的代码规范和风格并讨论如何改进优化代码。 一、源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点 ·····源代码目录结构示例如下: 可以看到这里的目录结构十分的清晰,可以让人明白的看出整个项目的组织结构和文件架构,特别的方便开发人员或者学习者的使用阅读。 ·····文件名示例如下: 大多数的文件的作用都可以从文件名中直观的看出来,方便开发人员的使用。 ·····类名命名和类结构示例如下: 采用驼峰命名法,完全按照软件编写规范来要求。 ·····函数名命名示例如下: 驼峰命名法。 ·····变量名命名示例如下: 驼峰命名法。 二、列举哪些做法符合代码规范和风格一般要求 ·····在文件名、类名、函数名、变量名命名方面都使用驼峰命名法,这一点非常符合程序设计规范,使读者非常方便的知晓表达的意思。下图看的十分明显: 三、列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进 在某些大段代码中缺乏注释,使阅读十分麻烦,如下: 四、总结同类编程语言或项目在代码规范和风格的一般要求 代码规范化基本上有七大原则,体现在空行、空格、成对书写、缩进、对齐、代码行、注释七方面的书写规范上。 1、空行 空行起着分隔程序段落的作用