オブジェクトに対しては、static
メンバー関数以外はコールできません。
など。
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
宣言された場合は、オブジェクトなしで関数を呼び出すことができますが、構文が::
、ない.
を使用しています。
など。 getStringFromA
のような関数名を持つ
std::string B::getStringFromA()
{
return A::getString();
}
、しかし、私は多分、参照によってA
を渡し、から文字列を取得したい特定のA
のパラメータを渡すことを期待します。 A
で
class B {
public:
std::string getStringFromA(A& a) { return a.getString(); }
};
getString
の場合は、実際にA
のconst
インスタンス上で呼び出すことができるように機能const
を宣言する方が良いだろうA
オブジェクトを変更しません。この場合、参照番号const
を使用することができる。
class A {
public:
std::string getString() const { return "olalal"; }
};
class B {
public:
std::string getStringFromA(const A& a) { return a.getString(); }
};
'getString'は静的関数ではありません。あなたは 'A'のインスタンス上でそれを呼び出さなければなりません。 –