错误、漏洞、问题 - 页 1586

 

编译错误

class A { public:
        void operator[]( int i ) {}
};
class B { public:
        B() : a( new A ) {}
        ~B() { delete a; }
        A *a;
        void f() const { a.operator[]( 0 ); } //нормально
        void g() const { a[ 0 ]; }            //error: call non-const method for constant object
        void h() const { (*a)[ 0 ];           //error: call non-const method for constant object
};
 
在 "正常 "的地方,应该有一个错误。运算符被定义,而不是作为const。
 
Anton Zverev:
凡是 "正常 "的地方,一定有错误。运算符被定义,而不是作为const。
"精神病学家 "今天得了个D
 
A100:
精神病学家》今天得了个D
class A { public:
        void operator[]( int i ) const {} // const добавил
};
class B { public:
        B() : a( new A ) {}
        ~B() { delete a; }
        A *a;
        void f() const { a.operator[]( 0 ); } // нет ошибки
        void g() const { a[ 0 ]; }            // нет ошибки
};
 
Anton Zverev:
我们谈论的是桌面版的Five。没有空气模式。
这与终端有什么关系?你需要禁用电脑上的互联网,最简单的操作是启用飞机模式。或者进入设置,禁用网络适配器。
 
Anton Zverev:

学习如何匹配

 
Karputov Vladimir:
终端与此有什么关系?你需要禁用电脑上的互联网,最简单的操作是打开 "平面 "模式。或者进入设置,禁用网络适配器。
Win7的这种模式在哪里?我很抱歉,但我是一个非常薄弱的用户。
 
Anton Zverev:
Win7的这种模式在哪里?对不起,但我是一个非常弱的用户。
Win7?不知道这样:).我有WIndows 10。
 
A100:
学会搭配。
我很想学习,但谷歌不明白我哪里错了。你能总结一下我的误解吗?我在你的例子中的 "正常 "行看到一个编译器错误。在我看来,编译器应该大声说出来。
 
Anton Zverev:
我很想学习,但谷歌不理解......
真正的硬汉不问谷歌,他们问白蜡树 :))