类对象的引用,做另一个类成员函数的参数,问题在哪?
有两个类A,B
class A
{
void functionsA(参数xxx)
{
// 调用B对象的functionsB
}
};
class B
{
void functionsB()
{
}
}
A.h文件里是:
#include "B.h"
void functionA(const B &);
A.cpp文件里是:
void A::functionA(const B & b)
{
//调用 b.functionB()
}
现在只有最后一个错误,到底怎么哪错了呢?
syntax error : missing','befor'&'
syntax error:'&'
(前两个问题针对这一句void functionA(const B &);)
functionA:overloaded member function 'void (const class B &)' not found in 'A'
问题点数:30、回复次数:4Top
1 楼piaochen_2002(执子之手,与子偕老!)回复于 2006-03-03 16:46:59 得分 10
class B
{
public :
void functionB()
{
}
};
class A
{
void functionA( B & b) ;
};
void A::functionA( B & b)
{
b.functionB();
}
Top
2 楼oosky2004(我要好东西)回复于 2006-03-03 17:16:29 得分 10
A.h文件里
#include "B.h"
class B; //加这句看看。
void functionA(const B &);Top
3 楼qybao(阿宝)回复于 2006-03-03 17:24:39 得分 0
have a try
class B
{
void functionsB() const //
{
}
}
Top
4 楼zhNKUjw(淡淡的云彩悠悠的游)回复于 2006-03-03 18:56:31 得分 10
qybao(阿宝)正解。
void A::functionA(const B & b) 传递的参数是一个B类常量的引用,所以要求不能对b的右值进行操作,即不能改变b中类变量的值。该函数中调用了B类的成员函数functionB(),要将其声明为const
#include<iostream>
using namespace std;
class B
{
public:
void functionsB() const
{
cout << "B" << endl;
}
};
class A
{
public:
void functionsA(const B& b)
{
// 调用B对象的functionsB
b.functionsB();
}
};
void main()
{
A a;
B b;
a.functionsA( b );
}Top




