R z*_* zu 2 c++ const undefined-behavior
以下代码编译.它似乎运行良好.
但它会导致任何未定义的行为吗?
我想抛弃常数*this.
这是为了允许a const my_iterator改变它指向的数据.
测试:
class A {
public:
A(const int x) : x_(x) {}
void set_x(int x) { x_ = x; }
void set_x2(const int x) const {
const_cast<A&>(*this).set_x(x);
}
int x_;
};
int main() {
A a(10);
a.set_x2(100);
}
Run Code Online (Sandbox Code Playgroud)
我会说你的例子不是未定义的行为.但是,如果a是const,那将是:
int main() {
const A a(10);
a.set_x2(100);
}
Run Code Online (Sandbox Code Playgroud)