所以我的教授有一个.h文件示例,末尾带有以下运算符
//ComplexNumber.h
#include <iostream>
using namespace std;
#ifndef MY_COMPLEX_H
#define MY_COMPLEX_H
class complexNumber {
public:
complexNumber();
complexNumber(double a, double b);
void setReal(double a);
void setImaginary(double b);
double getReal();
double getImaginary();
void printComplex();
private:
double realPart;
double imaginaryPart;
};
complexNumber add(complexNumber A, complexNumber B);
complexNumber subtract(complexNumber A, complexNumber B);
complexNumber multiply(complexNumber A, complexNumber B);
complexNumber divide(complexNumber A, complexNumber B);
complexNumber operator +(complexNumber A, complexNumber B);
complexNumber operator -(complexNumber A, complexNumber B);
complexNumber operator *(complexNumber A, complexNumber B);
complexNumber operator /(complexNumber A, complexNumber B);
ostream & operator << (ostream &outs, complexNumber A);
// istream & operator >> (istream &ins, complexNumber &A);
#endif
他在哪里获得
complexNumber A
和complexNumber B
?我在任何地方都不认为它们是变量... 最佳答案
A
和B
是complexNumber
类型的函数参数。在不是定义的声明中,名称A
和B
并不代表任何含义。以下两个相同:
complexNumber add(complexNumber A, complexNumber B);
complexNumber add(complexNumber , complexNumber );
不过,命名参数是个好主意,因为它通常会使函数声明更易于理解,并有助于使代码自记录。
在定义中,如果要使用为给定参数传递的参数,则该参数必须具有名称,否则无法识别它。
关于c++ - 运算符重载问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3705408/