笔试的时候碰到的一个问题
Posted randyniu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔试的时候碰到的一个问题相关的知识,希望对你有一定的参考价值。
现在的笔试题是真的妖孽啊,
class A { private: char * buf; public: A() { buf = new char[256]; printf("1"); } virtual ~A() { delete[] buf; printf("2"); } }; int main() { void *a = new A; delete a; return 0; }
结果是 并不会调用 A 的析构函数。
正常人会这么写代码吗,我挺好奇的。
为什么不会调用A的析构函数呢,这是因为,a所指向的空间类型是void* ,也就是没有类型,没有类型,你怎么调用析构函数,好笑。
但是 这样写,对编译器重新解释一下,就没有问题了。
delete reinterpret_cast<A*>(a);
还是熟人好呀,生人,编译器才不搭理你呢。
以上是关于笔试的时候碰到的一个问题的主要内容,如果未能解决你的问题,请参考以下文章
解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段
spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)(代码片段