在类A的成员函数functionsA函数里调用类B的成员函数functionsB执行一些操作,采用什么方法较为合适?
有两个类A,B
class A
{
void functionsA(参数xxx)
{
// 调用B对象的functionsB
}
};
class B
{
void functionsB()
{
}
}
在类A的成员函数functionsA函数里调用类B的成员函数functionsB执行一些操作,采用什么方法较为合适?
我想到的两个方法:1.将B的对象的引用作为参数XXX传入。但是在程序里如何表达呢?请帮忙写一下
2.将A声明为B的友员,直接调用B的成员函数,但是也没成功,应该怎么做呢?
问题点数:30、回复次数:10Top
1 楼handsomerun(毛毛)回复于 2006-03-03 15:47:34 得分 5
这个东西和友元不友元没关系,和是不是做参数也没关系,因为你得要有一个类b的对象咯
两个办法,一是把类A中定义一个类B的成员,然后在FA中调用类B的FB函数
或者把FB定义成类B的static成员函数
然后在类A中,通过
B::FB来调用这个函数
不过这样就失去了封装的意思了,FB就类似一个全局函数那样在用了Top
2 楼striking(庸人自扰)回复于 2006-03-03 15:47:42 得分 20
将B的对象作为A的成员.
class A
{
void functionsA(参数xxx)
{
// 调用B对象的functionsB
}
B b;//////
};
将B的对象的引用作为参数XXX传入。但是在程序里如何表达呢?请帮忙写一下
class A
{
void functionsA( B &b )
{
// 调用B对象的functionsB
}
};
Top
3 楼nodefault(永不言败)回复于 2006-03-03 15:51:40 得分 5
# include B.h
class A
{
void functionsA()
{
B b;
b.functionsB
}
};
Top
4 楼winterss(wendy)回复于 2006-03-03 16:00:36 得分 0
我采用的是这种方法:
#include "B.h"
class A
{
void functionsA( B &b )
{
b.functionB
}
};
因为在主线程里,希望只有一个B的对象,这里在调用functionA时,做那个B的对象的引用。但是compile时,程序报错呢?
syntax error:identifier 'B'
funtionsA:overloaded member funtion'int(class B&') not found in 'A'Top
5 楼striking(庸人自扰)回复于 2006-03-03 16:03:19 得分 0
看看A的头文件怎么定义的void functionsA( B &b )
Top
6 楼winterss(wendy)回复于 2006-03-03 16:10:45 得分 0
头文件那边是:void functionA(B &)。Top
7 楼striking(庸人自扰)回复于 2006-03-03 16:14:08 得分 0
可能你的实现写错了.Top
8 楼winterss(wendy)回复于 2006-03-03 16:24:55 得分 0
A.h文件里是:
#include "B.h"
void functionA(const &);
A.cpp文件里是:
void A::functionA(const B & b)
{
//调用 b.functionB()
}
现在只有最后一个错误,到底怎么哪错了呢?
functionA:overloaded member function 'void (const class B &)' not found in 'A'Top
9 楼striking(庸人自扰)回复于 2006-03-03 16:29:25 得分 0
A.h文件里是:
#include "B.h"
void functionA(const &);
->
void functionA(const B &);//少了BTop
10 楼winterss(wendy)回复于 2006-03-03 16:34:20 得分 0
加了后,又多出现了两个问题
针对:void functionA(const B &);
syntax error : missing','befor'&'
syntax error:'&'Top
相关问题
- 求函数f(a,b)=2*a*a+b*b的100个最小函数值
- bzero( )函数的 ‘b’代表什么?
- A函数调用函数B,在函数B中能不能获得传入参数的名称...
- 有没有函数可以做以下计算:两个数字,530,10,int a,b;b=502;a=10;b=b???a;最后b的值为51,请问该函数是什么???
- 如何得到asp中可以var=Function(a,b)这样的函数。
- 有无将TColor直接分解成R、G、B的函数?
- 查找字符串A是否在串B中用哪个函数
- A(int a = 1, int b = 2) 是不是缺省构造函数?
- C语言中有 set_pixel(a,b,c)这个函数吗?
- int[,] a ,创建a的副本b,有没有现成的函数?




