首页 > 编程语言 >C++complex 中学到的知识

C++complex 中学到的知识

时间:2022-10-05 20:55:46浏览次数:57  
标签:__ real 中学 const C++ complex inline return

#ifndef __COMPLEX__
#define __COMPLEX__

class Complex {
	public:
		//传值
		complex (double r = 0, double i = 0)
			: re(r), im(i)
		{ }
		complex& operator += (const complex&);
		double real() const  {return re; }
		double imag() const {return im; }
	private:
		double re, rm;
	//这是我的一个兄弟
	friend complex& __doapl (complex*, const complex&);
};

inline complex&
__doapl(complex* ths, const complex& r) {
	ths->re += r.re;
	ths->im += t.im;
	//返回的是一个指针
	return *ths;
}

// +=函数
inline complex& 						//左边也会传进来, 右边不动
complex::operator += (const complex& r) {
	return __doapl(this, r);
}

inline double img(const complex& x) {
	return x.img();
}

inline double real(const complex& x) {
	return x.real();
}


//不可以返回引用
inline complex operator + (const complex& x, const complex& y) {
		//创建一个临时变量
		return complex(real(x) + real(y), imag(x) + imag(y));		
}

#endif

我们可以由上面的设计方式, 总结出以下的设计方式:

image

在设计每一个类的时候, 我们都应该添加上防卫式的声明, 这样会是我们不会重复的引入相同的头文件

#ifndef
#define

#endif

其次构造函数的写法, 应该写成下面这种形式:

类的名称 (参数1, 参数2)
	: 属性1(参数1), 属性2(参数2)
{}

内联函数: 在类中创建的函数叫做内部函数, 而如果我们在外部创建函数的时候, 我们也可以将这个函数声明为属于这个类我们可以使用inline关键字。

inline complex& 						//左边也会传进来, 右边不动
complex::operator += (const complex& r) {
	return __doapl(this, r);
}

私有属性, 在函数的外部是不可以进行访问的, 但是我们可以声明一个友元函数, 这样就可以直接进行访问了

friend complex& __doapl (complex*, const complex&);

最后一个是:传值还是传递引用
尽量传递引用(因为很快), 但是注意当在函数中引入中间变量的时候, 我们不可以传递引用, 因为引用在函数结束后就消失了

//不可以返回引用
inline complex operator + (const complex& x, const complex& y) {
		//创建一个临时变量
		return complex(real(x) + real(y), imag(x) + imag(y));		
}

标签:__,real,中学,const,C++,complex,inline,return
From: https://www.cnblogs.com/zhengel/p/16756101.html

相关文章

  • C++/Python混合编程
    以C++为底层基础,Python作为上层建筑,共同搭建起高性能、易维护、可扩展的混合系统。Python本身就有C接口,可以用C语言编写扩展模块,把一些低效耗时的功能改用C实现......
  • 【c++基础】从json文件提取数据
    前言标注数据导出文件是json格式的,也就是python的dict格式,需要读取标注结果,可以使用c++或者python,本文使用c++实现的。JsonCpp简介JsonCpp是一种轻量级的数据交换格式,是个跨......
  • C++的基本数据类型
    C++的基本数据类型C++的数据类型可分为:1. 布尔类型:false0 true 12. 字符类型:可分为三种,char、signedchar、unsignedchar,其表现形式只是分为有符号和无符号,字符......
  • EffectiveC++中文版(第三版) pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1I1w2alIPQH1GJ32lz0MoaA点击这里获取提取码 ......
  • Effective Modern C++ 中文版 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1dYKjNiAsC3zrTrT1SO8g5g点击这里获取提取码 ......
  • C++之libcurl环境配置安装
    目录C++之libcurl环境配置安装前言curl与libcurl的区别InstalllibcurlonLinuxInstalllibcurlonWindows源码例子其他的网络库C++之libcurl环境配置安装前言最近在......
  • IfcComplexNumber
    IfcComplexNumber类型定义IfcComplexNumber是复数的表示形式,表示为具有两个元素的数组。第一个元素(索引1)表示实数分量,实数分量是复数的数值分量,复数的平方根可以明确计算......
  • C++基础神仙速度入门
    ​C++的各部分的重要程度我会标号10星为满分目录C++的基本知识只有个人认为主要的(重要程度:2星):C++的基本框架(重要程度:10星,必背)C++的基本语法(重要程度:9星): C++的基......
  • 在PA2中学到的有关编写测试用例的经验补充
    来源:ysyx5期,PA2基础设施(2)- “测试你的klib”内存和字符串的写入函数,例如memset(), strcpy()等.内存和字符串的只读函数,例如memcmp(), strlen()等.格式化输出......
  • C++自学笔记 多态性的实现 How virtual work in C++
     静态联编所支持的多态性称为编译时的多态性。当调用重载函数时,编译器可以根据调用时所使用的实参在编译时就确定下应调用哪个函数。动态联编所支持的多态性称为运行时......