@wolfssss
float f = (float)(v - 1);
v减不减一的区别在于
float f = (float)(v - 1);
求的是大于等于N且为2的次方的最小的数
float f = (float)(v);
求的是大于N且为2的次方的最小的数
re: 迅雷笔试题(C++) 楚天清秋 2010-09-26 20:04
汗一把,直接
for(int i = 0;i < N; ++i)
a[i] = i+1;
结束了
第i件物品的费用是c[i]....
应该形容为 第i件物品的体积是c[i].... 吧
似乎对绿色版本的Lingoes无效!
建议增加搜索路径
re: 关于sizeof(类)的大小 楚天清秋 2010-06-09 12:12
还是没明白。。。。
re: 关于sizeof(类)的大小 楚天清秋 2010-06-02 10:06
@Sunshine Alike
情况1的时候同样,为啥结果不同。。。。
re: JKRQ:日语汉字词汇读音查询工具 楚天清秋 2010-05-17 13:30
不错,
@北海鲲鹏
谢谢,代码写了也调试过,就是不明白
A* p = new B;
delete p;
为什么 先执行A的析构函数,然后B的析构就不执行了。
------------
如果改成
B* p = new B;
delete p;
结果很显然,会打印
"~B"
"~A"
class A
{
public:
A(){cout<<"~A"<<endl;}
};
class B:public A
{
public:
B(){cout<<"~B"<<endl;}
};
main()
{
A* p = new B;
delete p;
return 0;
}
---------------------------------
如果上例改成构造函数的话,应该是打印
"~A"
"~B"
A* p = new B;
delete p;
~~~~~~~~
delete p;
A的指针,但实例是B的,
到底是先执行A的析构函数,还是B的析构函数。
如果是先执行A的析构函数,A的析构函数由于不是Virtual的,所以不会执行B的析构函数,这就说得通!
@小时候可靓了
照理说析构时时先 执行自己的析构函数,然后执行父类的析构函数,如果有多继承,按照父类的声明顺序来执行析构函数。
A* p = new B;
delete p;
所以应该是
A和B的析构都执行吧?
1、请问上面输出什么,为什么!
为啥只打出 ~A 呢。。。