为什么函数声明中参数有名称?

问题描述 投票:0回答:1

所以我的教授有一个示例 .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
?我在任何地方都不认为这些是变量......

c++ operator-overloading
1个回答
4
投票

A
B
complexNumber
类型的函数参数。在不是定义的声明中,名称
A
B
没有任何意义;以下两个是相同的:

complexNumber add(complexNumber A, complexNumber B);
complexNumber add(complexNumber  , complexNumber  );

不过,给参数命名是个好主意,因为它通常使函数声明更容易理解,并有助于使代码自文档化。

在定义中,如果要使用给定参数传递的实参,则该参数必须有一个名称,否则无法识别它。

© www.soinside.com 2019 - 2024. All rights reserved.