#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();
}
注:关于构造函数是笔试中就是那样写的,主要是实现友元 运算符重载的那两个函数。
分享到:
相关推荐
20. **流运算符重载**:流运算符(和 >>)通常通过友元函数重载,因为成员函数重载需要第一个参数是当前类的对象。 21. **赋值运算符和拷贝构造函数**:两者都可以实现对象间的数据复制,但拷贝构造函数用于新对象...
友元类则使得一个类的所有成员成为另一个类的朋友。 - **运算符重载与类型转换**:运算符重载不仅可以用于基本类型,还可以用于用户定义的类型,提高代码的可读性和表达力。 - **异常处理**:C++提供了异常处理机制...
7. **运算符重载**:了解哪些运算符可以被重载,以及如何通过成员函数或友元函数实现运算符重载。 8. **模板**:掌握函数模板和类模板的使用,泛型编程的基本思想,以及模板特化和偏特化的概念。 9. **STL...
文件中也可能涉及C++的高级特性,如异常处理、命名空间、内联函数、友元、运算符重载等。异常处理是C++中处理错误的机制,理解try-catch-finally结构至关重要。命名空间用于避免全局作用域的命名冲突,内联函数和...
综上所述,这些C++笔试题目涵盖了继承、访问控制、this指针、虚函数、运算符重载、构造函数、静态成员函数、const成员函数等核心概念,这些都是C++编程中的基础且重要的知识点。理解和掌握这些内容对于编写高效、...
这里 `a*b` 调用了成员函数形式的 `*` 运算符重载,而 `+` 调用了友元函数形式的 `+` 运算符重载。 ### 5. 继承的相关概念 **继承**是一种使一个类(派生类)继承另一个类(基类)的特性和行为的方式。继承有助于...
8. **运算符重载**:学习如何通过重载运算符实现自定义行为,如自增、自减、索引访问等。 9. **STL(标准模板库)**:熟悉容器(如vector、list、set、map)、算法(如排序、搜索)和迭代器的使用。 10. **异常...
C++笔试题可能涉及构造函数、析构函数、友元、虚函数、纯虚函数、运算符重载、模板、STL(标准模板库)如vector、list、map等容器的使用,以及异常处理和内存管理等。对于C++,理解面向对象编程的基本原则和C++特有...
C++是一种强大的面向对象编程语言,常常用于...以上知识点涵盖了C++中的基础概念,如类和对象、构造函数、拷贝构造函数、析构函数、运算符重载、访问控制、静态成员和友元等,这些都是C++程序员必须掌握的核心内容。
9. **运算符重载:** 运算符重载允许我们自定义运算符的行为,使其适用于自定义类型。 10. **继承与多继承:** 继承支持代码复用,多继承允许一个类继承多个基类。虚继承用来解决二义性问题。 #### 四、泛型设计部分 ...
根据提供的部分内容,本文将详细解析这份Oppo软件工程师C++笔试题中的选择题部分,涉及的知识点包括栈的基本操作、循环控制结构、二分查找算法、基本输入输出、指针与数组、友元函数、运算符重载、表达式的计算规则...
- **友元函数**: 当需要访问某个类的私有或保护成员时,可以使用友元函数来进行运算符重载。 - **类成员函数**: 如果运算符操作的对象是同一类的不同实例,则可以使用成员函数来进行重载。 ### 3. 流运算符重载 - ...
14. **运算符重载**:运算符重载可以是成员函数或友元函数,但`=, ( ), [], ->`这些不能作为友元函数重载。 15. **模板函数**:模板实参在某些情况下可以推断,如虚拟类型参数在参数列表末尾,可以省略。 16. **...
这篇资料涉及的是C++编程,特别是关于自定义字符串类(String类)的设计与实现。...在实际的编程面试或笔试中,这种题目通常用来考察考生对C++类的设计、内存管理、运算符重载以及面向对象编程的理解。
全国计算机等级考试二级C++笔试试题涉及到许多C++编程语言的基础知识,包括函数重载、类的构造与析构、访问控制、运算符重载、模板、输入输出流、面向对象特性、变量作用域、循环结构以及数组与字符串操作等。...
**运算符重载**:当需要改变某个运算符在特定类型上的默认行为时,就需要进行运算符重载。例如,对于一个类类型,可能需要定义一个特定的加法操作。重载运算符时需要注意,只有当二元运算符最左边的操作数是该类的一...
根据文档内容,我们可以看出,这份试卷主要考查了C++语言的基本语法和概念,包括类的定义与实现、对象的创建与管理、函数重载、继承、运算符重载等。这是学习C++以及准备计算机等级考试二级C语言考试的基本知识点。
拷贝构造函数用于创建一个新对象作为现有对象的副本,赋值运算符重载用于对两个对象进行赋值操作。 13. 类的成员函数与静态成员函数 - `int fun1(); class Test { public: static int fun4(); };` 表明`fun1`是...
【东南大学电类C++07笔试B卷】是一份重要的学习资料,主要针对东南大学电子类专业的学生,尤其对那些希望通过期末考试取得优异成绩的同学来说,这份资料具有极高的参考价值。C++是一种强大的、面向对象的编程语言,...
从华为笔试分享中提炼的关键知识点主要集中在C++编程语言的基础语法、数据类型处理、运算符优先级、指针与数组的使用、函数定义与调用、面向对象特性以及STL库的应用等方面。以下是对这些知识点的详细解析: ### 一...