C++面向对象高级编程(侯捷)—— 6.complex类实现

本文探讨了C++中面向对象编程时设计类的注意事项,包括构造函数的初始化、成员函数的const使用、参数传递方式、返回类型的选择以及数据与函数的访问修饰符。并详细介绍了复杂类(complex)的头文件和cpp文件实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回顾 设计一个class需要注意:

  • 构造函数中对参数使用 冒号 : 初始化
  • 成员函数该不该加const,如果不加可能有什么副作用?
  • 传参数尽量 pass by reference,加不加const?
  • 返回的时候 return by what?const or not
  • 数据一般放在 private,函数一般 public

头文件

#ifndef __COMPLEX__ // 1.防卫式声明
#define __COMPLEX__	

#include <iostream>
using std::ostream;

// 2.class head
class complex 
{ // class body
public:
	// 3.构造函数 inline
	complex (double r = 0, double i = 0) // pass by 什么都可以,因为double是4个字节
		: re(r), im(i) // 设初值
	{  }
	// 有些函数在此直接定义,另一些在body之外定义
	complex& operator += (const complex&); // 5.重载+=,设计为成员函数
	// 4.取得实部和虚部,不会改data,所以函数是const;inline
	double real() const { return re; } 
	double imag() const { return im; }
private:
	double re, im;
	// 6.do assignment-plus 函数中想直接取得re和im,所以声明成友元函数
	friend complex& __doapl(complex*, const complex&);
};

#endif // __COMPLEX__

cpp文件

#include "complex.h"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值