首页 > 编程语言 > 详细

c++ 笔试面试题 难题精选 持续更新

时间:2014-04-07 01:52:36      阅读:562      评论:0      收藏:0      [点我收藏+]
//第一题   问下面的输出结果是 什么?
#include <stdio.h>
#include <iostream>
using namespace std;

class A
{
protected:
	int m_data;
public:
	A(int data = 0)
	{
		m_data = data;
	}
	int GetData()
	{
		return doGetData();
	}
	virtual int doGetData()
	{
		return m_data;
	}
};

class B: public A
{
protected : int m_data;
public: 
	B(int data = 1)
	{
		m_data  =  data;
	}
	int doGetData()
	{
		return m_data;
	}

};

class C : public B
{
protected :  int m_data;
public :
	C(int data = 2)
	{
		m_data = data;
	}
};
int main()
{
	C c(10);
	cout<<c.GetData() << endl;
	cout<<c.A::GetData()<<endl;
	cout<<c.B::GetData()<<endl;
	cout<<c.C::GetData()<<endl;

	cout<<c.doGetData()<<endl;
	cout<<c.A::doGetData()<<endl;
	cout<<c.B::doGetData()<<endl;
	cout<<c.C::doGetData()<<endl;
	
	return 0;
}             																																																										答:   为   1   1   1   1  1  0  1  1  具体请参看程序员面试宝典 P134



第二题  :

#include <stdio.h>
#include <iostream>
using namespace std;

class A
{
protected:
	int m_data;
public:
	A(int data = 0)
	{
		m_data = data;
	}
	int GetData()
	{
		return doGetData();
	}
	 int doGetData()
	{
		return m_data;
	}
};

class B: public A
{
protected : int m_data;
public: 
	B(int data = 1)
	{
		m_data  =  data;
	}
	int doGetData()
	{
		return m_data;
	}

};

class C : public B
{
protected :  int m_data;
public :
	C(int data = 2)
	{
		m_data = data;
	}
};
int main()
{
	C c(10);
	cout<<c.GetData() << endl;
	cout<<c.A::GetData()<<endl;
	cout<<c.B::GetData()<<endl;
	cout<<c.C::GetData()<<endl;

	cout<<c.doGetData()<<endl;
	cout<<c.A::doGetData()<<endl;
	cout<<c.B::doGetData()<<endl;
	cout<<c.C::doGetData()<<endl;
	//cout << A::doGetData()<<endl;  这种调用方式是错的
	return 0;
}

/*
结果为  0 0 0 0 1 0 1 1
*/

#include <stdio.h>
#include <iostream>
using namespace std;

class A
{
public:
	 static void doGetData()
	 {
		 printf("A");
	 }
};

class B: public A
{
public:
 void doGetData()
 {
     printf("B");
 }

};

  
int main()
{
    B  b ;
	b.doGetData();
	b.A::doGetData();
 
	return 0;
}

/*
结果为  B A
*/
//问以下输出什么
#include <stdio.h>
#include <iostream>
using namespace std;
class A
{
public:
	 A()
	 {
          printf("A的空参数构造函数\n");
	 }
	 A(int i)
	 {
		 printf("A的构造函数\n");
	 }
	 ~A()
	 {
		 printf("A的析构函数\n");
	 }
	 A(const A&other)
	 {
		 printf("A的copy构造函数\n");
	 }
};

A play(A a)
{
     
     return a;
}
 
int main()
{
   
    A temp = play(5);
	return 0;
}
 



c++ 笔试面试题 难题精选 持续更新,布布扣,bubuko.com

c++ 笔试面试题 难题精选 持续更新

原文:http://blog.csdn.net/hnust_xiehonghao/article/details/23037401

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!