C++好的面試題和不好的面試題

來源:果殼範文吧 2.88W

C++在中國有很大的市場需求,幾乎現在找工作,C++和Java還是最大的兩塊。從以

C++好的面試題和不好的面試題

前別人面試我,到我現在面試別人,談不上什麼面經,只能說我覺得的一些好的面試題

目,和一些不太好的面試題目

不好的面試題:

[1] 虛擬函式如何實現的。 在i = 0; ++i++之後,就屬這道題最了。我被別人問過,

我也聽過我同事問這個問題。我只想說,這個題絕對不需要問。只要你不實現C++編

輯器,這道題對你沒有用。你只需要知道虛擬函式,純虛擬函式是做什麼用的,他們和普通

函式有什麼區別,就足夠了。或者說,什麼時候你會用虛擬函式,什麼時候用純虛擬函式。

換個角度,為什麼從來沒有人問Java的動態繫結如何實現的呢?

好的面試題

[1] (5星) C++程式進入main函式之前,退出main函式之後會做些什麼?

[2] (5星) 如何使用C++實現一個執行緒安全的singleton類,要求延遲初始化。如果這個

singleton類獲得了一種資源,

譬如socket,資料庫的connection,如何釋放呢? (這個題其實蠻難的)

[3] (5星) 你們在多執行緒環境中如何使用mutex。其實是要求考差對mutex進行封裝,

初始化即獲得,並且析構的時候unlock,以避免異常丟擲的情況。

view plaincopy to clipboardprint?

class MutexHelper

{

public:

MutexHelper(TLock& lock):iLock(lock) { pthread_mutex_lock(&iLock); }

~MutexHelper() { ptrhead_mutex_unlock(&iLock); }

}

//TODO: disable assignment and cctor

privae:

pthread_mutex_t& iLock;

};

class Worker

{

public:

Worker() { pthread_mutex_init(&iLock, NULL); }

~Worker() { pthread_mutex_destroy(&iLock); }

public:

void FuncNeedSync();

private:

pthread_mutex_t iLock;

};

void Worker::FuncNeedSync()

{

MutexHelper helper(iLock);

//TODO: something;

}

class MutexHelper

{

public:

MutexHelper(TLock& lock):iLock(lock) { pthread_mutex_lock(&iLock); }

~MutexHelper() { ptrhead_mutex_unlock(&iLock); }

}

//TODO: disable assignment and cctor

privae:

pthread_mutex_t& iLock;

};

class Worker

{

public:

Worker() { pthread_mutex_init(&iLock, NULL); }

~Worker() { pthread_mutex_destroy(&iLock); }

public:

void FuncNeedSync();

private:

pthread_mutex_t iLock;

};

void Worker::FuncNeedSync()

{

MutexHelper helper(iLock);

//TODO: something;

}

[4] (5星) 實現一個itoa的函式。包括函式需要什麼樣的`引數,返回值,為什麼這麼設

計。這道題可以看出一個人幾本的程式設計習慣和能力。並且可以要求對這個函式設計測試

用例。

[5] (4星) C++類的static變數是什麼時候初始化的,函式的static變數是什麼時候初始

化的?

[6] (4星) 我需要使用std::string rst來存放一個字串拼接的結果,並且我知道這個結

果大概有4k,你會怎麼來拼接。其實就是考察要reserve長度,然後呢,使用+=。

[7] (3星) 這個和演算法有些關係。std::map的find函式,一定是讀執行緒安全的嗎?就是

說如果你有一個std::map,已經存好了內容。然後有N個執行緒同時find它,但是沒有任

何執行緒會往裡面新增東西。這樣不加鎖訪問,是一定安全的嗎?答案是不是,有的實現

就不是。 為什麼?這個題目很有意思,大家可以google一下。



熱門標籤