代码之家  ›  专栏  ›  技术社区  ›  gornvix

将此类传递给引用的正确语法是什么?

c++
  •  2
  • gornvix  · 技术社区  · 6 年前

    假设我有两个班:

    class Foo
    {
    public:
        int x;
    };
    
    class Bar
    {
    public:
        Foo *foo;
    };
    

    实例如下:

    Bar *bar;
    bar = new Bar();
    

    以及通过引用获取foo对象的函数:

    void func(Foo &foo);
    

    在BAR中使用foo调用此函数的正确方法是什么?->foo?

    2 回复  |  直到 6 年前
        1
  •  10
  •   Vittorio Romeo    6 年前

    正确的语法是:

    func(*(bar->foo));
    
        2
  •  0
  •   Toby Speight    6 年前

    bar->foo 是一个 指针 到一个比赛场地。我们只需要取消对指针的引用:

    Foo& f = *bar->foo;
    func(f);
    

    或(一体式)

    func(*bar->foo);