将类传递给自己的成员函数

Has*_*san 0 c++

我正在从Java转向C++并且有一个简单的问题.如果是重复,请耐心等待并指导我.

考虑以下具有其成员函数的类:

class Painter {
public:
    void paint(Building *house) {
        // paint the building
    }
};

class Building {
public:
    void passToPainter(){
        painter.paint(this);
    }
private:
    Painter painter;
};
Run Code Online (Sandbox Code Playgroud)

该行painter.paint(this);是Java语法.C++中的语法是什么?

非常感谢你.

Bat*_*eba 5

它是完全相同的.但是在C++中,this指向对象实例的指针,而在Java中,它是一个引用.

在C++中,如果从标记的成员函数调用,this则将是const指向该对象的指针const.这有助于实现程序稳定性.