fstream open函数中的第三个参数是什么意思?我尝试在网络上进行搜索,但是没有关于带有三个参数的重载版本的明确解释。这来自fstream文件:
void open(const char* _Filename, ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int) ios_base::_Openprot) { // open a C stream with specified mode
Run Code Online (Sandbox Code Playgroud)
如果在某些情况下该参数对于程序员确实是必需的,还是只是为了实现方便?
我正在实现访问者模式,并且我有一个accept()
仅在基visitable
类中定义的函数。该系统运行良好,但 Alexandresku 在他的书中指出this
指针具有静态类型。
这段代码是否有缺陷和/或有错误,但我的输出没有捕捉到它?
我试图改变对指针的引用,但输出没有改变。
.h 文件
class WidgetVisitor
{
public:
virtual void visit(ConcreteWidget1& w1);
virtual void visit(ConcreteWidget2& w2);
virtual void visit(Widget& w);
virtual ~WidgetVisitor() { }
};
class Widget
{
public:
Widget(const std::string& text);
virtual std::string text() const;
virtual void accept(WidgetVisitor* v);
protected:
std::string text_;
};
class ConcreteWidget1: public Widget
{
public:
ConcreteWidget1(const std::string& text);
virtual std::string text() const override;
};
class ConcreteWidget2: public Widget
{
public:
ConcreteWidget2(const std::string& text);
virtual std::string text() …
Run Code Online (Sandbox Code Playgroud)