C++课程中的fstream

RnD*_*RnD 1 c++ constructor class

我开始上课,现在我遇到了一个问题.我正在尝试将所有变量放入一个类中,但是我得到了错误:

main.cpp|6|error: expected identifier before string constant| 
main.cpp|6|error: expected ',' or '...' before string constant|
main.cpp|7|error: expected identifier before string constant|
main.cpp|7|error: expected ',' or '...' before string constant|
Run Code Online (Sandbox Code Playgroud)

虽然当我把它们变成全局时,一切正常

    class Kauliukas{

        ifstream inFile("inFile.in");
        ofstream outFile("outFile.out");
        int n, akutes[100],k=0;

        void ivedimas();
        void skaiciavimas();
        void isvedimas();
};
Run Code Online (Sandbox Code Playgroud)

有什么问题?

Cap*_*liC 6

初始化在构造函数中进行.这与C#不同.你必须定义一个类似的构造函数

class Kauliukas {
public:
    Kauliukas() : inFile("inFile.in"), outFile("outFile.out"), k(0) {}
private:
    ifstream inFile;
    ofstream outFile;
    int n, akutes[100],k;

    void ivedimas();
    void skaiciavimas();
    void isvedimas();
};
Run Code Online (Sandbox Code Playgroud)

  • 请注意,在C++ 11中,只要初始化表达式是常量表达式,就可以将初始化放在类定义中.http://www2.research.att.com/~bs/C++0xFAQ.html#member-init (2认同)