c++ - 如何防止类被 malloc,只允许新的?

标签 c++ malloc new-operator

在某些情况下,我想强制调用在 new 中自动调用但在 malloc 中不被调用的构造函数(在这种情况下,我们必须求助于放置新技术)。有什么方法可以让类仅适用于 new 而不是 malloc 吗?

编辑:编译时间限制会更可取(我猜像往常一样)。

最佳答案

没有办法。 malloc 基本上是无类型的——它只是分配一个字节缓冲区,你无法阻止它,就像你无法阻止某人将无类型指针转换为你的类型的指针一样。

无论如何,不要尝试! 正如 Damian Conway (probably) 所说的那样,您的代码应该防范 Murphy,而不是 Machiavelli:防止用户犯无心之失。但是,当他们故意决定破坏类型系统时,他们只能靠自己了。您的问题根本没有用例。不要在上面浪费资源。

关于c++ - 如何防止类被 malloc,只允许新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47053747/

相关文章:

c++ - 我的函数无法正确编译

C++ mktime 和 DST

c - 代码块中的动态分配

c++ - 谁定义了新的运算符?

c++ - 有关shared_ptr和operator new的问题

C++/CX - 我需要将 Platform::String 传递到采用 const char* 的方法中?

c++ - 用另一个替换多维数组?

c - dlmalloc 中的 fd 和 bk

C - int 和 malloc

c++ - 取消引用 `new` 指针是否被认为是好的风格?