您只能在對象上調用非static
成員函數。
E.g.
std::string B::getStringFromA()
{
A object_of_type_A;
return object_of_type_A.getString();
}
或者,你可以創建一個無名臨時A
和呼籲的是,例如getString()
class B {
public:
std::string getStringFromA() { return A().getString(); }
};
如果getString()
被宣佈在A
static
,你可以調用該函數沒有對象,但語法使用::
,不.
。
E.g.
std::string B::getStringFromA()
{
return A::getString();
}
有了這樣getStringFromA
函數名,不過,我希望通過特定A
,我想從字符串,可能是通過引用傳遞A
的參數。
class B {
public:
std::string getStringFromA(A& a) { return a.getString(); }
};
如果getString
在A
實際上並沒有修改A
對象倒不如聲明函數const
,以便它可以對A
const
實例調用。在這種情況下,可以使用const
參考。
class A {
public:
std::string getString() const { return "olalal"; }
};
class B {
public:
std::string getStringFromA(const A& a) { return a.getString(); }
};
`getString`不是一個靜態函數。你必須在`A`的實例上調用它。 – 2011-02-10 09:08:12