C++ で C スタイルの文字列を処理するのに問題があります。要するに、私がやろうとしているのは、メイン メソッドからオブジェクトの 1 つのコンストラクターに cstring を渡すことです。
例えば
class sample
{
public: // Initalization
Sample( const char * inFile);
}//End sample class
次に、メインメソッドで。
//Main method
int main ( int argc, const char * argv[] )
{
Sample aSample(argv[1]);
}
さて、私の仮定に基づいて、 をconst char*
使用して 2 番目のポインターを逆参照すると、 a が返されるはずargv[1]
です。私の理解char *argv[]
では、 char の別の言い方です**argv
。
また、const の私の理解が正しいことを確認するために、const char *
「このポインターは const char を指している」const char const *
と言っていますが、「このポインターのアドレスは変更できず、それが指すアドレスも const です」と言っています。
アップデート -
これを明確にするために、2つの部分からなる質問です。
- サンプルのコンストラクターが cstring を渡すのに正しくない場合、どうすれば修正できますか?
- constの理解
「最初の」ポインターが「2 番目の」ポインターであるべきなのに逆参照したという上記の誤ったステートメントを更新しました。以下、ご指摘ありがとうございます。
2 回目の更新 - argv[1] を使用しているのは、コマンド ラインから情報を受け取っており、argv[0] には興味のない実行可能ファイルのパスしか含まれていないためです。
どんな助けでも大歓迎です。
-フレディ