科大讯飞 笔试面试问题

笔试编程题:
1.递归判断一个数组是否递增
2.循环左移字符串,最快的方法,不申请内存空间。(求最快的方法)如:abcde,左移两位cdeab
面试题:(经理问的)
1.拷贝构造函数,参数为啥是引用(知道),不能为指针吗(不知道)
2.两个类除了继承之外还有啥关系。(友元也不算,求解


面试题1:
#include<iostream>
using namespace std;
class CExample
{
private:
	int m_nTest;
public:
	CExample(int x) : m_nTest(x)      //带参数构造函数
	{
		cout << "constructor with argument" << m_nTest << endl;
	}
// 拷贝构造函数,参数中的const不是严格必须的,但引用符号是必须的
	explicit CExample(const CExample & ex)     //拷贝构造函数
	{
		m_nTest = ex.m_nTest;
		cout << "copy constructor" << endl;
	}
CExample(const CExample* c_class)
	{
		m_nTest = c_class->m_nTest+2;
		cout << "copy pointer constructor " << m_nTest<< endl;
	}
	CExample& operator = (const CExample &ex)   //赋值函数(赋值运算符重载)
	{
		m_nTest = ex.m_nTest;		cout << "assignment operator " << m_nTest << endl;

		return *this;
	}
};
int main(void)
{
	CExample aaa(2);
	CExample *bbb=new CExample(3);
	CExample ddd(bbb);
	system("pause");
} 
最后,“拷贝构造函数需要传入的是一个对象,如果拷贝构造函数的参数是指针的话,这个参数就是地址而不是对象了(仅仅指向对象而已)。所以不能用指针,不过指针和引用的传惨机制是一样的,指针对指向的对象而言不是传值得对自己而言是传值的 ”(源自下的评论:http://blog.csdn.net/hackbuteer1/article/details/6545882)
全部评论
左移那题,先整体反转再局部反转即可 空间复杂度O(1)
点赞 回复
分享
发布于 2016-09-02 11:30
你不是java吧?两个类还可是内部类的关系啊
点赞 回复
分享
发布于 2016-09-01 17:31
博乐游戏
校招火热招聘中
官网直投
面试题: 1.语法上可以定义为指针,但是已经不算是构造函数了吧。自动调用构造函数的时候传递过来的是一个对象,而不是指针。 2.还有包含关系,就是A类里有B类,使用B类的方法,还有什么关系想不到了
点赞 回复
分享
发布于 2016-09-01 17:52
类与类之间的关系包括:继承,实现,依赖,关联(关联关系又包括组合和聚合两种)
点赞 回复
分享
发布于 2016-09-01 18:03
类之间的关系有五种: 1、关联。类A与类B的实例之间存在特定的对应关系。 2、依赖。类A访问类B提供的服务。 3、聚集。类A为整体类,类B为局部类,类A的对象由类B的对象组合而成。 4、泛化。类A继承了类B。 5、实现。
点赞 回复
分享
发布于 2016-09-01 18:21
同学,请问一下,你是走的校招还是内推?
点赞 回复
分享
发布于 2016-09-01 20:06
楼主是内推?
点赞 回复
分享
发布于 2016-09-02 15:50

相关推荐

点赞 37 评论
分享
牛客网
牛客企业服务