如何初始化在 header 文件中声明为 const 的 object?
How to initialize an object that declared as const on header file?
我想在 header.
中声明后,仅在 main()
函数中初始化 std::ifstream object
有什么方法可以用 C++ 实现吗?
我写了这个但是没有编译
//header.h
#include <iostream>
#include <fstream>
class class1{
static const std::ifstream fs;
};
//proj.cpp
#include "header.h"
void main(){
class1::fs("Employee.txt")
}
static
变量需要在全局范围内定义,而不是在函数内部定义。
main
也应该 return int
而不是 void
.
A const
std::ifstream
没有多大意义,因为您需要使用的大多数方法都是非 const
,因此无法在您的 const
流。
解决这些问题可以得到:
//header.h
#include <iostream>
#include <fstream>
class class1{
static std::ifstream fs;
};
//proj.cpp
std::ifstream class1::fs("Employee.txt");
int main(){
return 0;
}
如果您想在 main
中打开流,则需要执行以下操作:
const std::ifstream class1::fs;
int main(){
class1::fs.open("Employee.txt");
return 0;
}
我想在 header.
中声明后,仅在main()
函数中初始化 std::ifstream object
有什么方法可以用 C++ 实现吗?
我写了这个但是没有编译
//header.h
#include <iostream>
#include <fstream>
class class1{
static const std::ifstream fs;
};
//proj.cpp
#include "header.h"
void main(){
class1::fs("Employee.txt")
}
static
变量需要在全局范围内定义,而不是在函数内部定义。
main
也应该 return int
而不是 void
.
A const
std::ifstream
没有多大意义,因为您需要使用的大多数方法都是非 const
,因此无法在您的 const
流。
解决这些问题可以得到:
//header.h
#include <iostream>
#include <fstream>
class class1{
static std::ifstream fs;
};
//proj.cpp
std::ifstream class1::fs("Employee.txt");
int main(){
return 0;
}
如果您想在 main
中打开流,则需要执行以下操作:
const std::ifstream class1::fs;
int main(){
class1::fs.open("Employee.txt");
return 0;
}