1

次のコードでは、Visual Studio 2010 C++ は fstream インクルードの受け入れを認識しませんが、fstream 型を認識しません。

#include <string.h>
#include <fstream>

class Test_CLR
{
    int openFlag;

    int isOpen(void)
    {
        return openFlag;
    };

    fstream testFile;
};
4

2 に答える 2

2

名前空間を指定するのを忘れています (名前空間の詳細については、http ://www.cplusplus.com/doc/tutorial/namespaces/ を参照してください) 。

基本的に、次の 3 つの方法で fstream クラスに std 名前空間を使用さ​​せることができます。

アプローチ1

std 名前空間を使用するようにファイル全体を宣言します。

#include <string.h>
#include <fstream>

using namespace std;   //ADDED CODE

class Test_CLR
{
    int openFlag;

    int isOpen(void)
    {
        return openFlag;
    };

    fstream testFile;
};

アプローチ 2

std 名前空間のfstreamのみを使用するようにプログラム全体を宣言します。

#include <string.h>
#include <fstream>

using std::fstream;   //ADDED CODE

class Test_CLR
{
    int openFlag;

    int isOpen(void)
    {
        return openFlag;
    };

    fstream testFile;
};

アプローチ 3

std 名前空間にリンクされる fstream の単一使用を宣言します。

#include <string.h>
#include <fstream>

class Test_CLR
{
    int openFlag;

    int isOpen(void)
    {
        return openFlag;
    };

    std::fstream testFile;   //ADDED CODE
};

違いは、上部に投稿されたリンクで説明されています。好きなのを選びな :)

于 2011-12-10T01:22:09.430 に答える
2

fstream は std 名前空間にあります。代わりに std::fstream を試してください。詳細については、http://www.cplusplus.com/doc/tutorial/namespaces/を参照してください。

さらに、「using」キーワードを使用して、さまざまなスコープでタイプの使用を許可できます。詳細については、 http://www.cprogramming.com/tutorial/namespaces.htmlを参照してください。

于 2011-12-09T18:43:06.007 に答える