題目:請問下面的程式輸出是什麼?
// test3.cpp : 定義控制台應用程式的入口點。//#include "stdafx.h"
#include using namespace std;
class ca
{public:
ca(){cout << "ca ....."
p->ca::func();
p->ca::f();
cout << "*************************===="結果:
解釋:1. 為什麼建構函式和析構函式能夠分別呼叫自己的f(),而不是呼叫多型產生的實際型別的呢?
答:由於ca的建構函式構造的是ca型別的,因此在ca型別的建構函式中呼叫f(),只會呼叫ca自己的;析構函式與此同理。
2. func()的呼叫為什麼會輸出this is b?
答:這就是多型的用途。由於有virtual的作用,ca* p指標看到ca裡面的func()函式會呼叫f(),而看ca裡面的f()是在虛函式表中的,直接指向最新的實際型別的f(),也就是呼叫實際型別cb的f(),因此輸出this is b.
要呼叫基類的函式,可以用基類ca::來限定。
趨勢科技筆試題
1 下面程式的輸出是多少?cpp view plain copy print?voidgetmemory char p intmain void void getmemory char p int main void a hello b hello world c hello world run t...
趨勢科技筆試題
3 以下的 可放在vc 6.0裡面執行。題目是要求輸出 trendmicrosoftuscn 然後要求修改程式,使程式能輸出以上結果 如下 include include using namespace std int main int argc,char argv string p new str...
趨勢科技筆試程式設計題
題目描述 給定乙個由小寫英文本母構成的字串s,求不含重複字母的子串的最大長度 題目記得不大清楚了。例如 輸入 abcde 輸出 4 include include include include include include include include include include incl...