初始化类型的引用无效

时间:2013-11-16 18:57:49

标签: c++ pointers const

所以我有这个代码,我将问题传递给函数有问题。当我编译时,我得到以下错误:'const Point&'类型的引用的无效初始化来自'const Point *'

类型的表达式
struct Point
{
    int x,y;
};

void printPoint(const Point& p)
{
    cout<<"The X-coordinate is = "<<p.x<<"\nThe Y-coordinate = "<<p.y<<endl;
}

int main()
{
    const Point p1 = {3,4};
    printPoint(&p1);
}

4 个答案:

答案 0 :(得分:1)

&pi的类型为Point*(它是该对象的地址),请使用:printPoint(p1);

答案 1 :(得分:1)

参考是隐含的。您不需要&。实际上,这使它成为一个指针(const Point*,它不能隐式转换为const Point&)。只需printPoint(p1);

答案 2 :(得分:0)

int main()
{
    const Point p1 = {3,4};
    printPoint(p1);
}

&p1提供p1的地址。

答案 3 :(得分:0)

这需要参考

void printPoint(const Point& p)

但你传递指针

printPoint(&p1);

所以,请使用这个:

   printPoint(p1);