我對C++比較新,所以我不知道如何實現我的問題。 我將示意性地呈現我的問題而不是實際的代碼,希望這會給出其他用戶也可以使用的一般解決方案。C++:在另一個類的函數中返回對象
我有:
在頭部中阿(及其適當的A.cpp)所定義的A類
在頭部了Bh B類(及其適當的B.cpp)
在這個類B中,我有一個函數,它使用A(objA)的一個對象作爲參數,對它做一些事情並返回這個對象。
我應該如何定義該函數以便類B在其函數中識別「類型」objA? 完成指針,模板,...?
謝謝! Roeland
我對C++比較新,所以我不知道如何實現我的問題。 我將示意性地呈現我的問題而不是實際的代碼,希望這會給出其他用戶也可以使用的一般解決方案。C++:在另一個類的函數中返回對象
我有:
在頭部中阿(及其適當的A.cpp)所定義的A類
在頭部了Bh B類(及其適當的B.cpp)
在這個類B中,我有一個函數,它使用A(objA)的一個對象作爲參數,對它做一些事情並返回這個對象。
我應該如何定義該函數以便類B在其函數中識別「類型」objA? 完成指針,模板,...?
謝謝! Roeland
有在那裏變種:
// 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(); }
我已經使用了指針版本,它的工作! – Roeland