如果main函数用堆实例化一个对象,传参的时候为什么也要加上一个“*”?
#include <iostream>
using namespace std;
/**
* 定义Coordinate类
* 友元函数:display
* 数据成员:m_iX、m_iY
*/
class Coordinate
{
// 友元函数
friend void display(Coordinate &coordinate);
public:
Coordinate(int x, int y)
{
m_iX = x;
m_iY = y;
}
public:
int m_iX;
int m_iY;
};
/**
* display函数用于显示m_iX、m_iY的值
*/
void display(Coordinate &coordinate)
{
cout << "m_iX:" << coordinate.m_iX << endl;
cout << "m_iY:" << coordinate.m_iY << endl;
}
int main(void)
{
// 实例化Coordinate对象
Coordinate *coordinate = new Coordinate(1,2);
// 调用display函数
display(*coordinate);
delete coordinate;
coordinate = NULL;
return 0;
}
就比如这一段代码,在堆中实例化了一段空间,用指针指向它,但调用display的时候括号里的“*”代表了什么?