这是我面临的问题,有没有人有解决方案?
Class A: public class B
{
// I want to pass a reference of B to Function
}
void ClassC::Function(class& B)
{
//do stuff
}
答案 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
类型的引用。