我对 c++ 比较陌生,所以我不知道如何实现我的问题。我将示意性地展示我的问题而不是实际代码,希望这将提供其他用户也可以使用的通用解决方案。
我有:
在标头 Ah 中定义的 A 类(带有正确的 A.cpp)
标头 Bh 中的 B 类(带有正确的 B.cpp)
在这个类 B 中,我有一个函数,它使用 A 的对象(objA)作为参数,用它做一些事情,然后返回这个对象。
我应该如何定义该函数,以便 B 类在其函数中识别“类型”objA?它是用指针、模板、......完成的吗?
谢谢!罗兰
你的 headerB.h 应该#include "headerA.h"
。那就足够了。
当然,如果你要改变对象的状态,你应该通过指针传递它,比如void MyBMethod(objA* x);
.
有变种:
// 1) by value
// in B.h
#include "A.h"
class B {
public:
A foo(A a);
};
// in B.cpp
A B::foo(A a) { /* a.do_something(); */ return a; }
// 2) by reference
// in B.h
#include "A.h"
class B {
public:
void foo(A& a); // can modify a
void foo(const A& a); // cannot modify a
};
// in B.cpp
void B::foo(A& a) { // a.change_something(); }
void B::foo(const A& a) { // a.get_something(); }
// 3) by pointer
// in B.h
#include "A.h"
class B {
public:
void foo(A* a); // can modify a
void foo(const A* a); // cannot modify a
};
// in B.cpp
void B::foo(A* a) { // a->change_something(); }
void B::foo(const A* a) { // a->get_something(); }