将基类的引用传递给另一个函数

时间:2009-12-16 21:56:08

标签: c++

这是我面临的问题,有没有人有解决方案?

Class A: public class B
{
 // I want to pass a reference of B to Function
}

void ClassC::Function(class& B)
{
  //do stuff
}

2 个答案:

答案 0 :(得分:6)

你宣布课程的方式是错误的:

class A : public B // no more class keyword here
{

}; // note the semicolon

void ClassC::Function(const B &b) // this is how you declare a parameter of type B&
{
}

您只需将A类型的对象传递给Function即可。它会工作的。 如果您想要获取派生类型,最好将参数声明为const。 要传递this个实例,您只需调用:

classCObject.Function(*this);

答案 1 :(得分:1)

您是否只是遇到语法问题?它应该是

void ClassC::Function(B& b)
{
    b.DoSomething();
}

使b成为B类型的引用。