`
xusaomaiss
  • 浏览: 616742 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

帮朋友做的一笔试(友元 运算符重载)

 
阅读更多
#include "stdafx.h"
#include <string.h>
/*
    题目:
    根据下列的类的定义,写出加法,乘法二元操作符的友元函数,
    而且每一个函数都应返回complex。
    并写入一个main函数来测试3+5i和6+2i的加和乘操作。
 */
#include<iostream.h>
class complex{
    double real,image;

   
public:
    complex(double r)
    {
        real=r;
        image=0;
    }
    void assign(double r,double i)
    {
        real=r;image=i;
    }
    void print(){cout<<real<<"+"<<image<<"i"<<endl;}
   
    friend complex operator + (const complex &x,const complex &y)
    {
        complex temp(0);
        temp.real= x.real + y.real;
        temp.image= x.image + y.image;
        return temp;
    }


    friend complex operator * (const complex &x,const complex &y)
    {
        complex temp(0);
        temp.real=x.real * y.real;
        temp.image=x.image*y.image;
        return temp;
    }
   
};



int main(int argc, char* argv[])
{
    complex ob1(3),ob2(6),ob3(0),ob4(0);

    ob1.assign(3,5);
    ob2.assign(6,2);

    cout<<"************************************"<<endl;
    ob1.print();
    ob2.print();
    cout<<"************************************"<<endl;
    //ob2=a+ob1;  //整型变量a与类complex对象ob1相加
    cout<<"(3+5i)+ (6+2i)= ";
    ob3=ob1+ob2;
    ob3.print();
    cout<<"************************************"<<endl;
    cout<<"(3+5i)*(6+2i)= ";
    ob4=ob1*ob2;  //整型变量a与类complex对象ob1相乘
    ob4.print();
}
 

注:关于构造函数是笔试中就是那样写的,主要是实现友元 运算符重载的那两个函数。

分享到:
评论
1 楼 无心流泪wan 2013-10-04  
乘法法则
规定复数的乘法按照以下的法则进行:
设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积(a+bi)(c+di)=(ac-bd)+(bc+ad)i.
其实就是把两个复数相乘,类似两个多项式相乘,展开得: ac+adi+bci+bdi^2,因为i^2=-1,所以结果是(ac-bd)+(bc+ad)i 。两个复数的积仍然是一个复数。

相关推荐

    c++ 笔试题

    20. **流运算符重载**:流运算符(和 &gt;&gt;)通常通过友元函数重载,因为成员函数重载需要第一个参数是当前类的对象。 21. **赋值运算符和拷贝构造函数**:两者都可以实现对象间的数据复制,但拷贝构造函数用于新对象...

    2007年计算机等级考试二级C++笔试模拟试题(4).docx

    友元类则使得一个类的所有成员成为另一个类的朋友。 - **运算符重载与类型转换**:运算符重载不仅可以用于基本类型,还可以用于用户定义的类型,提高代码的可读性和表达力。 - **异常处理**:C++提供了异常处理机制...

    C++笔试题 .

    7. **运算符重载**:了解哪些运算符可以被重载,以及如何通过成员函数或友元函数实现运算符重载。 8. **模板**:掌握函数模板和类模板的使用,泛型编程的基本思想,以及模板特化和偏特化的概念。 9. **STL...

    C++笔试及专业面试大全

    文件中也可能涉及C++的高级特性,如异常处理、命名空间、内联函数、友元、运算符重载等。异常处理是C++中处理错误的机制,理解try-catch-finally结构至关重要。命名空间用于避免全局作用域的命名冲突,内联函数和...

    C++笔试题目-带答案.docx

    综上所述,这些C++笔试题目涵盖了继承、访问控制、this指针、虚函数、运算符重载、构造函数、静态成员函数、const成员函数等核心概念,这些都是C++编程中的基础且重要的知识点。理解和掌握这些内容对于编写高效、...

    下学期笔试自测题.docx

    这里 `a*b` 调用了成员函数形式的 `*` 运算符重载,而 `+` 调用了友元函数形式的 `+` 运算符重载。 ### 5. 继承的相关概念 **继承**是一种使一个类(派生类)继承另一个类(基类)的特性和行为的方式。继承有助于...

    C++十几份重量的笔试题目 做完笔试无忧

    8. **运算符重载**:学习如何通过重载运算符实现自定义行为,如自增、自减、索引访问等。 9. **STL(标准模板库)**:熟悉容器(如vector、list、set、map)、算法(如排序、搜索)和迭代器的使用。 10. **异常...

    c&c++&java;笔试题大全

    C++笔试题可能涉及构造函数、析构函数、友元、虚函数、纯虚函数、运算符重载、模板、STL(标准模板库)如vector、list、map等容器的使用,以及异常处理和内存管理等。对于C++,理解面向对象编程的基本原则和C++特有...

    C++笔试题题目

    C++是一种强大的面向对象编程语言,常常用于...以上知识点涵盖了C++中的基础概念,如类和对象、构造函数、拷贝构造函数、析构函数、运算符重载、访问控制、静态成员和友元等,这些都是C++程序员必须掌握的核心内容。

    C++笔试面试要点

    9. **运算符重载:** 运算符重载允许我们自定义运算符的行为,使其适用于自定义类型。 10. **继承与多继承:** 继承支持代码复用,多继承允许一个类继承多个基类。虚继承用来解决二义性问题。 #### 四、泛型设计部分 ...

    oppo软件工程师C++笔试题之选择

    根据提供的部分内容,本文将详细解析这份Oppo软件工程师C++笔试题中的选择题部分,涉及的知识点包括栈的基本操作、循环控制结构、二分查找算法、基本输入输出、指针与数组、友元函数、运算符重载、表达式的计算规则...

    C/C++面试经典大全

    - **友元函数**: 当需要访问某个类的私有或保护成员时,可以使用友元函数来进行运算符重载。 - **类成员函数**: 如果运算符操作的对象是同一类的不同实例,则可以使用成员函数来进行重载。 ### 3. 流运算符重载 - ...

    全国计算机等级考试二级C语言笔试试题及答案解析.pdf

    14. **运算符重载**:运算符重载可以是成员函数或友元函数,但`=, ( ), [], -&gt;`这些不能作为友元函数重载。 15. **模板函数**:模板实参在某些情况下可以推断,如虚拟类型参数在参数列表末尾,可以省略。 16. **...

    C_C++语言程序设计笔试面试题22.pdf

    这篇资料涉及的是C++编程,特别是关于自定义字符串类(String类)的设计与实现。...在实际的编程面试或笔试中,这种题目通常用来考察考生对C++类的设计、内存管理、运算符重载以及面向对象编程的理解。

    2023年全国计算机等级考试二级C++笔试试题.doc

    全国计算机等级考试二级C++笔试试题涉及到许多C++编程语言的基础知识,包括函数重载、类的构造与析构、访问控制、运算符重载、模板、输入输出流、面向对象特性、变量作用域、循环结构以及数组与字符串操作等。...

    东南大学复试C++ 往年真题整理10-18(带有详细注释笔记)

    **运算符重载**:当需要改变某个运算符在特定类型上的默认行为时,就需要进行运算符重载。例如,对于一个类类型,可能需要定义一个特定的加法操作。重载运算符时需要注意,只有当二元运算符最左边的操作数是该类的一...

    2010年3月计算机等级考试二级C笔试试题1.pdf

    根据文档内容,我们可以看出,这份试卷主要考查了C++语言的基本语法和概念,包括类的定义与实现、对象的创建与管理、函数重载、继承、运算符重载等。这是学习C++以及准备计算机等级考试二级C语言考试的基本知识点。

    三月计算机等级考试二级C笔试试题一.pdf

    拷贝构造函数用于创建一个新对象作为现有对象的副本,赋值运算符重载用于对两个对象进行赋值操作。 13. 类的成员函数与静态成员函数 - `int fun1(); class Test { public: static int fun4(); };` 表明`fun1`是...

    东南大学电类C++07笔试B卷

    【东南大学电类C++07笔试B卷】是一份重要的学习资料,主要针对东南大学电子类专业的学生,尤其对那些希望通过期末考试取得优异成绩的同学来说,这份资料具有极高的参考价值。C++是一种强大的、面向对象的编程语言,...

    刚刚参加完华为笔试,给大家分享

    从华为笔试分享中提炼的关键知识点主要集中在C++编程语言的基础语法、数据类型处理、运算符优先级、指针与数组的使用、函数定义与调用、面向对象特性以及STL库的应用等方面。以下是对这些知识点的详细解析: ### 一...

Global site tag (gtag.js) - Google Analytics