`
swincle
  • 浏览: 79200 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Operators

    博客分类:
  • C++
 
阅读更多

C++把操作符也看成是与函数同样性质的实体,因此可以对操作符进行函数哪样的定义。例如:

 

#include<iostream>

using namespace std;

class Point {
    int x, y;

    public:
        void set(int a, int b) {
             x = a;
             y = b;
        }
        void print() const {
             cout << "(" << x << ", " << y << ")\n";
        }
        //friend声明后函数体中可以访问Point的私有数据
        friend Point operator + (const Point &a, const Point &b);    //“+”在匹配了某种类型的实参后便可以被编译理解成确定的行为
        friend Point add(const Point &a, const Point &b);    //add函数与+操作符的功能完全一致
};

Point operator + (const Point &a, const Point &b) {
    Point s;
    s.set(a.x + b.x, a.y + b.y);
    return s;
}

Point add (const Point &a, const Point &b) {
    Point s;
    s.set(a.x + b.x, a.y + b.y);
    return s;
}

int main() {
    Point a, b;
    a.set(3,2);
    b.set(1,5);
    (a + b).print();    //编译时转译为对operator + (a, b)的调用
    operator + (a, b).print();
    add(a, b).print();
}

 Some characters or restraints about operator:

①不能创造新的操作符;

②::/./.*/?:这些操作符不能重载;

③操作符优先级不变;

④操作数个数不变;

⑤在操作符定义的参数表中,至少有一个参数必须是自定义类型;

⑥应与操作意义相符;

 

Increment operators

int a = 1, b = 1, c = 1, d = 1;

(++a) ++;    //a = 3,函数定义为 X& operator ++ (X &a);
(b++) ++;    //b = 2,函数定义为 X operator ++ (X &a, int b);其中参数int b是为区分前增量函数所设置的
 
分享到:
评论

相关推荐

    Teradata SQL Functions, Operators, Expressions, and Predicates

    由于提供的文件内容包含了大量版权和商标声明,并没有提供实际的Teradata SQL Functions, Operators, Expressions和Predicates的相关知识内容,因此无法直接从文件内容中生成具体的知识点。不过,我可以根据文件的...

    Wavelets and Operators (1993, Cambridge University Press).pdf

    《小波与算子》(Wavelets and Operators)是一本由Yves Meyer教授撰写的权威著作,该书深入探讨了小波理论及其在数学分析中的应用。本书不仅涵盖了小波的基本理论,还详细介绍了如何利用算子理论来分析小波变换的性质...

    cdo (Climate Data Operators ) 常用命令介绍:(查看文件信息、多文件合并、数据裁剪、数据插.pdf

    **CDO(Climate Data Operators)** 是一个强大的命令行工具,专门用于气候数据的处理和分析。它提供了超过600个操作符,能够执行各种复杂的气候数据分析任务,包括文件信息查看、数据合并、裁剪、插值以及更多。CDO...

    Ordinary Differential Operators

    在数学领域,尤其是泛函分析和偏微分方程中,"Ordinary Differential Operators"(常微分算子)是极其重要的研究对象。它们是定义在函数空间上,通过对函数进行微分操作来生成新函数的线性算子。常微分算子在物理、...

    CDO相关文档(climate data operators)

    内容涉及:cdo(climate data operators)的说明书、指令卡片、图形使用文档、py和rb对cdo的使用以及一个大佬的相关ppt。之前发过一个链接,只有py和rb对cdo的使用,这边这个涵盖了我最近找到的所有参考文档。

    Schrodinger Operators With Application to Quantum Mechanics and Global Geometry (Theoretical and Mathematical Physics) by Hans L. Cycon, Richard G. Froese, Werner Kirsch, Barry Simon (z-lib.org).djvu

    Schrodinger Operators With Application to Quantum Mechanics and Global Geometry (Theoretical and Mathematical Physics) by Hans L. Cycon, Richard G. Froese, Werner Kirsch, Barry Simon (z-lib.org).djvu

    linq_standard_query_operators

    ### Linq Standard Query Operators #### 限制操作符 (Restriction Operators) **Where** - **功能**: Where 操作符遍历源序列,并返回那些使谓词函数返回 true 的元素。 - **示例**: 假设有一个客户集合 `...

    Copy Constructors and Assignment Operators终极解释

    在C++编程语言中,复制构造函数(Copy Constructor)和赋值运算符(Assignment Operator)是两个非常关键的概念,特别是在处理对象的拷贝和赋值时。它们默认由编译器提供,但通常需要根据具体需求进行自定义,以确保正确...

    The .NET Standard Query Operators

    《.NET Standard Query Operators》 本文将深入探讨.NET Standard Query Operators,这是一种强大的API,用于查询任何.NET数组或集合。该API包含在名为System.Query.dll的程序集中的System.Query.Sequence静态类中...

    PyPI 官网下载 | rappiflow_dag_operators-0.3.1.tar.gz

    《PyPI与rappiflow_dag_operators-0.3.1:探索分布式云原生环境中的Python库》 PyPI(Python Package Index)是Python开发者的重要资源库,它为全球的Python开发者提供了一个集中发布和下载Python软件包的平台。在...

    Python库 | discrete_fuzzy_operators-1.9.1.tar.gz

    《Python库discrete_fuzzy_operators详解》 在信息技术领域,Python作为一种强大的开发语言,以其简洁易读的语法和丰富的库资源深受开发者喜爱。本文将深入探讨Python库`discrete_fuzzy_operators-1.9.1`,这是一个...

    题一:Data Types, Operators and Expressions1

    在编程语言中,数据类型(Data Types)、运算符(Operators)和表达式(Expressions)是构建程序的基础元素。本文将详细探讨这些概念,特别是在C语言中的应用。 首先,变量名(Variable Names)是编程中用来存储值...

    linear operators part 1

    Dunford,Schwartz写的线性算子。

    Python库 | rappiflow_dag_operators-0.2.4-py3-none-any.whl

    《Python库rappiflow_dag_operators-0.2.4-py3-none-any.whl详解》 在Python的世界中,库是开发者的重要工具,它们提供了丰富的功能,简化了编程工作。今天我们要讨论的是一个名为`rappiflow_dag_operators`的...

    History of Banach Spaces and Linear Operators

    ### 关于《Banach空间与线性算子的历史》的知识点概述 #### 一、Banach空间的概念与发展 - **1.1 完备赋范线性空间**:Banach空间是数学分析中的一个重要概念,它是一种完备的赋范线性空间。这意味着在Banach空间...

    standard_query_operators

    .NET Standard Query Operators是LINQ(Language Integrated Query,语言集成查询)的一部分,它是.NET框架中引入的一个强大特性,允许开发者以一种声明式的方式处理各种数据源,包括集合、数据库、XML等。...

    C程序设计英文课件:CHAPTE 2 Types,Operators and Expressions.ppt

    在C语言中,第二章“Types, Operators, and Expressions”涵盖了编程的基础概念,包括变量命名、数据类型、常量、声明与表达式、运算符等多个方面。让我们逐一深入探讨这些知识点。 首先,变量(Variable)是程序中...

    PyPI 官网下载 | custom-operators-1.0.tar.gz

    《PyPI官网下载:custom-operators-1.0.tar.gz——深入解析Python自定义操作符库》 在Python编程世界中,PyPI(Python Package Index)是开发者们获取和分享Python软件包的主要平台。它提供了丰富的第三方库,极大...

    用Operators管理多集群Kubernetes.docx

    标题中的"用Operators管理多集群Kubernetes"指的是在Kubernetes环境中,使用Operator技术来有效地管理和自动化多集群的运维过程。Operator是一种高级的自动化方法,它扩展了Kubernetes的原生能力,使得复杂应用和...

    mongo中模糊查询使用和QueryOperators宣贯.pdf

    在MongoDB中,模糊查询和QueryOperators是两个关键概念,用于实现更复杂的查询操作。MongoDB是一个基于分布式文件存储的NoSQL数据库系统,它提供了丰富的查询语言,支持多种数据模型,包括文档、图形和键值对。本文...

Global site tag (gtag.js) - Google Analytics