将对象作为参数传递

时间:2010-11-23 06:17:22

标签: c++

任何人都可以举例说明将类的对象作为参数传递给同一个类的函数。

4 个答案:

答案 0 :(得分:15)

class Unicorn {
    void Eat(Unicorn other_unicorn) { 
        // implementation omitted to keep this answer family-friendly
    }
};

int main() {
    Unicorn glitter;
    Unicorn dazzle;
    glitter.Eat(dazzle); // mmmm, yummy
}

请注意,Dazzle仍然没问题,因为我们复制了他并将副本送到了Glitter。

答案 1 :(得分:1)

class X
{
public:
    void func(X x) {}
};

int main()
{
    X a,b;
    a.func(b);
}

答案 2 :(得分:1)

为了迂腐,我建议通过引用传递对象,并默认将它们设为const,例如(感谢James McNellis)

class Unicorn {
    void Eat(const Unicorn & other) {
        // Nothing else changes
    }
};

答案 3 :(得分:0)

不确定这是否是你想要的但是无论如何

    class MyClass {  int a; void whatEver(MyClass myclass); };

void MyClass::whatEver(MyClass myclass) { ....do something }

现在代码中的某个地方

MyClass obj1; obj2;

obj1.whatEver(obj2);