- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
由于接口(interface)设计失误,第三方软件商删除了一个函数,比如base_noncopy_base类中的拷贝构造函数:
class base_noncopy_base {
base_noncopy_base(const base_noncopy_base&);
public:
base_noncopy_base() {}
};
那个类应该是继承的,比如:
class base_noncopy_derived : public base_noncopy_base {
// whatever ....
};
但是现在,不再允许使用 base_noncopy_derived 作为 base_noncopy_base:
int main() {
base_noncopy_derived d;
// base_noncopy_base b1 = d; // won't compile
// base_noncopy_base b2(d); // won't compile
// base_noncopy_base b3((base_noncopy_derived)d); // won't compile
}
const_cast
一个 const
成员是可能的,而且我已经看到一些 hack 可以从类外部访问私有(private)成员,当然,仅供使用在紧急情况下。我想知道:是否有可能破解删除函数?
编辑 1:
进一步阐述问题:
实际问题来自其他第三方函数函数,如:
void base_noncopy_function1(base_noncopy_base &b) {
}
void base_noncopy_function2(base_noncopy_base b) {
我可以使用类似的东西:
base_noncopy_base *b4 = &d;
base_noncopy_function1(*b4);
但不是
base_noncopy_function2(*b4);
最佳答案
如果您想“将 base_noncopy_derived
用作 base_noncopy_base
”,则使用引用或指针而不是创建新对象:
base_noncopy_derived d;
base_noncopy_base & b = d;
您注释掉的代码试图分割基类,通过仅复制 d
的一部分来创建一个新对象。这很少是一件明智的事情,也是基类往往是抽象的或不可复制的原因。
如果你真的想这样做,那么你必须改 rebase 类的定义,这样它就不会删除复制函数。无法“取消删除”它们。
关于c++ - 取消删除设计不良的已删除 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219664/
我在使用 Heroku 时遇到问题,当我尝试部署我的应用程序时,它没有运行 run assets:precompile而且我还没有在本地预编译我的 Assets ,我在 Git 中没有 list 文件
(这是为您提供围绕我的问题的背景信息。您可以跳到“问题”并阅读该内容,然后如果您想直接进入主题,则可以返回并浏览背景知识.抱歉,这是一面文字墙!) 我需要将一堆非常非常糟糕的 JSON 存储在数据库中
我是一名优秀的程序员,十分优秀!