c++第四章实验九 第一题

题目:

已知类Complex定义如下:

class Complex

{

double real, imag;

public:

         // 其它成员函数,根据需要填写, 如构造函数、拷贝构造函数

};

编程要求:

完成Complex类的+和-运算符重载(两个Complex对象的real和imag分别相加和相减)

#include<iostream>
using namespace std;

class Complex
{
    double real, imag;
    public: 
        Complex(double r=0,double i=0)   //构造函数 
        {
        	real=r;
        	imag=i;
		};
		Complex operator+(Complex &);          //重载运算符函数+ 
		Complex operator-(Complex &);          //重载运算符函数-
		void display();                        //输出real和imag 
};

Complex Complex::operator+(Complex &obj)
{
	return Complex(real+obj.real,imag+obj.imag);
} 

Complex Complex::operator-(Complex &obj)
{
	return Complex(real-obj.real,imag-obj.imag);
}  

void Complex::display() 
{
	cout<<"real:"<<real<<"  imag:"<<imag<<endl;
}

int main()
{
	Complex c1(3,4),c2(-4,5),c3,c4;
	c3=c1+c2;
	c4=c1-c2;
	c1.display();
	c2.display();
	c3.display();
	c4.display();
	return 0;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
预处理是编译器的第一个阶段,主要完成对源程序的预处理工作,包括宏定义和条件编译等。在C语言中,预处理指令都以#开头,例如#define、#include等。 下面是一个简单的C程序示例: ``` #include <stdio.h> #define PI 3.1415926 int main() { double r, s; scanf("%lf", &r); s = PI * r * r; printf("The area of the circle is: %lf\n", s); return 0; } ``` 预处理阶段主要完成以下工作: 1. 将#include指令替换为指定的头文件内容。 在上面的示例中,#include <stdio.h>指令会将stdio.h头文件的内容插入到程序中。 2. 将#define指令替换为指定的宏定义内容。 在上面的示例中,#define PI 3.1415926指令会将程序中所有出现的PI替换为3.1415926。 3. 处理条件编译指令,例如#if、#else、#elif和#endif等。 条件编译指令可以根据不同的条件编译不同的代码段,例如: ``` #define DEBUG ... #ifdef DEBUG printf("Debugging information\n"); #endif ``` 在上面的示例中,如果定义了DEBUG宏,则会输出“Debugging information”,否则不会输出。 4. 处理其他预处理指令,例如#error、#pragma等。 #error指令可以在编译时输出错误信息,例如: ``` #if MAX_SIZE > 1024 #error MAX_SIZE is too large #endif ``` 在上面的示例中,如果MAX_SIZE大于1024,则会输出“MAX_SIZE is too large”。 #pragma指令可以用来控制编译器的行为,例如: ``` #pragma pack(1) struct { char c; int i; } s; ``` 在上面的示例中,#pragma pack(1)指令会将结构体s的对齐方式设置为1字节,而不是默认的4字节。 预处理阶段的输出结果是一个新的C源程序,其中所有的预处理指令都已经被处理完毕。编译器的下一个阶段是编译阶段,将源程序翻译成目标代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值