小编tak*_*004的帖子

如何使用动态强制转换检测到指针的删除

如图所示在这里,人们可以使用dynamic_cast来检测已删除的指针:

#include <iostream>

using namespace std;

class A
{
public:
   A() {}
   virtual ~A() {}
};

class B : public A
{
public:
   B() {}
};

int main()
{
   B* pB =  new B;

   cout << "dynamic_cast<B*>( pB) ";
   cout << ( dynamic_cast<B*>(pB) ? "worked" : "failed") << endl;  

   cout << "dynamic_cast<B*>( (A*)pB) ";
   cout << ( dynamic_cast<B*>( (A*)pB) ? "worked" : "failed") << endl;  

   delete pB; 

   cout << "dynamic_cast<B*>( pB) ";
   cout << ( dynamic_cast<B*>(pB) …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-cast vtable

8
推荐指数
1
解决办法
810
查看次数

重量不平衡的AVL树

相信维基百科文章:http://en.wikipedia.org/wiki/AVL_tree

AVL树是高度平衡的,但通常不是重量平衡的,也不是μ平衡的; [4]也就是说,兄弟节点可以有非常不同数量的后代.

但是,作为AVL树是:

自平衡二进制搜索树[...].在AVL树中,任何节点的两个子子树的高度最多相差一个

我不知道AVL是如何重量不平衡的,因为如果我理解AVL树的定义,每个兄弟都会有大约相同数量的孩子,因为他们有相同的身高+/- 1.

那么,你能给我一个不平衡的AVL树的例子吗?我没有成功找到一个.因此,或者我误解了AVL /未加权树的定义,或维基百科文章是假的......

谢谢

avl-tree

6
推荐指数
2
解决办法
1136
查看次数

展开一个看起来像"1-3,6,8-10"到[1,2,3,6,8,9,10]的范围

我正在尝试为我的程序添加一个选项,允许用户选择他想要执行的程序的哪些步骤.

我希望能够解析一个像"1-3,6,8-10"和得到 的字符串[1, 2, 3, 6, 8, 9, 10].

你知道Python中的某些内容是否存在吗?

python

5
推荐指数
2
解决办法
3006
查看次数

10025是分配byte []的特殊值

我在这里的一些代码中看到了几次用于TCP通信的以下行:

byte[] bytesFrom = new byte[10025];
Run Code Online (Sandbox Code Playgroud)

因此,我想知道这个10025值是否有特殊原因,或者它是否只是任意选择.

谢谢

tcp

3
推荐指数
1
解决办法
682
查看次数

重新抛出const异常引用

我在一个多项选择题中被问到以下程序在做什么:

catch(const std::exception& e){
  throw e;
}
Run Code Online (Sandbox Code Playgroud)

我回答说它是在重新抛出e(答案C).但答案显然是错误的.

那它在做什么?扔一份e(答案D)?

另一个可能的答案是:A)处理异常B)捕获e中的当前堆栈跟踪

谢谢

c++ exception

1
推荐指数
1
解决办法
50
查看次数

标签 统计

c++ ×2

avl-tree ×1

dynamic-cast ×1

exception ×1

python ×1

tcp ×1

vtable ×1