我有两个A类,B。
对于A,我有两种方法callB()
和checksomethinginB()
。
对于B,我有一种方法execute()
。
我用它们像:
A _a;
_a.callB(); //inside the function, B object _b will be created
//after _b created, in another place, _b will execute _b.execute().
_b.execute()
{
// I want to use A method checksomethinginB()
}
所以我不知道在B中使用A方法的好方法,我可以创建的是使用静态函数,但我认为可能有更好的方法,谢谢你的建议!!
答案 0 :(得分:0)
将A
的正确实例传递给B
的构造函数,或者在需要时传递它。
如果checksomethinginB
在A
中不需要任何状态,那么它当然可以是静态的。
答案 1 :(得分:0)
如果没有查看课程详细信息并且没有解释您的课程实际执行的操作,您可以考虑以下选项:
B:execute
的函数签名以获取参数参数,该参数是A类的实例(或指向或引用A的实例),以便您可以调用A::checksomethinginB()
checksomethinginB()
需要访问A的非静态成员变量,则无法执行此操作可能有更好的选择,但如果没有关于类和功能要求的更多详细信息,则很难说
答案 2 :(得分:0)
我不确定您为什么要在class A
class B
中使用A::checksomethinginB()
中的函数 - 我会将B::checksomething()
移至A::checksomethinginB
。从这里,我看到两个(+ 1)可能性:
B::checksomething
/ A
未使用A
中的任何州,那么您就完成了.. A
,所以你需要给他一个:可能会传递一个引用。A::staticSomethingNotMentionedBefore
的静态部分,您可以直接将它们与{{1}}一起使用。