問題(16):執行如下的c++**,輸出是什麼?
class a};
class b: public a};
int main()
思路;開始一眼看出這題很基本當然 雖然是a是 a類的引用,但是確指向的是類b。這裡a.fun()由於是虛函式 通過虛函式指標在虛函式表裡面找到 fun函式
所以輸出b:fun with number沒有問題,但是至於函式裡面的形式引數的話,我就拿不準了。
海濤日誌裡面分析的十分透徹,應該輸出10
為什麼你,濤哥裡面說 因為預設引數實在編譯期間處理的,編譯期間 a a是a類,但在執行中,虛函式動態的指向b類的fun函式,但是number的值為10
因此 輸出
b::fun with number 10
執行如下的
c**,輸出是什麼?
char* getstring1()
char* getstring2()
int _tmain(int argc, _tchar* argv)
陣列p為函式的區域性變數,退出函式空間立即**
*p是字串常量存放在常量資料區,為全域性的
因此 getstring1 returns:一串亂碼
getstring2 returns:hello world
問題(
19):
執行下圖中
c**,輸出的結果是什麼
?
int _tmain(int argc, _tchar* argv)
str1,str2為陣列 要為其分配儲存空間,當然位址不同
「hello world」為字串常量,存放在常量資料區,當然*str3,和*str4指向的位址相同。它在記憶體中只有乙個拷貝
5 6思維訓練
a guest from the past 題解 暴力迴圈會超時。買玻璃瓶有返還,而塑料瓶沒有,應當優先考慮玻璃瓶。玻璃瓶的實際 為b c,但當前 要 b才能買。設買了n瓶,先減去最後一瓶的錢 不包括返還 然後前面的瓶一定能買下並且 為b c。然後剩餘的錢買塑料瓶即可。include using n...
56 合併區間(高頻題)
是否有重疊區間的問題,直接貪心思路,根據陣列的end或者start進行公升序排序,再看看start和end的大小關係來判斷是否重疊。像435題就是一樣的型別。不過本題要注意,一定要根據start的公升序排列,不能根據end來排列,不然就會出現下圖所示的情況 否則,將這兩個區間合併為 x1,max x...
構造題訓練
由於noip之前沒有怎麼做過構造,導致吃了大虧。構造 互動 基本問題 有一些數,假設有 n 個,有 m 個被標記,我們可以詢問乙個集合。我們可以得知這個集合內是否存在被標記的數。要求次數 o m log 2n 做法1 分治 考慮分治到當前區間 l,r 詢問 l,r 有沒有被標記的數。如果沒有,則返回...