C++好的面试题和不好的面试题

时间:2022-07-13 14:18:08 面试 我要投稿
  • 相关推荐

C++好的面试题和不好的面试题

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一下。



【C++好的面试题和不好的面试题】相关文章:

经典C/C++面试题07-11

华为C++/MFC面试题07-11

面试题与技巧07-12

华为面试题07-11

「MySQL」经典面试题07-11

c面试题08-04

采购面试题07-11

面试题集锦07-11

Java面试题07-12

SQL面试题07-12