@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 呢。。。