任何人都可以举例说明将类的对象作为参数传递给同一个类的函数。
答案 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);