私はC++を初めて使用し、Javaから移行して、これについて疑問に思っています:
pos = result.find(remove[i]);
if (pos == string::npos)
文字列を「スーパークラス」と呼んでいますか?定数「npos」にアクセスするクラス自体を呼び出している場合、私は混乱しています関数で宣言されたいくつかの文字列変数がある場合、クラスのどのインスタンスであるかをどのように知るのですか?
npos
インスタンスにバインドされるのではなく、クラス自体にバインドされます。static
会員です。Javaにもstatic
メンバーがあります。
[...]
namespace std {
template<class charT, class traits = char_traits<charT>,
class Allocator = allocator<charT> >
class basic_string {
public:
//...
static const size_type npos = -1;
//...
};
std::string
の専門化ですbasic_string
。
npos
文字列の静的メンバーです。
C++ の静的メンバーは、プログラムごとに 1 回作成され、同じクラスのすべてのインスタンスで共有されます。クラスをインスタンス化せずにアクセスすることもできます。