今天是我的第一篇博客,有点小激动,以前羡慕大神和大牛级人物,现在我也要坚定信念朝这个行业努力啦~~
最近有学校的双选会,参加了一个公司的笔试,笔试题目很基础,但是我还有一些做错了,惭愧
1、考了字符串和字符数组的区别,题目大概如下
<span style="font-size:18px;"> char* pstr="hello";
cout<<pstr<<endl;
cout<<*pstr<<endl;
cout<<sizeof(pstr)<<endl;
char str[]="abcd";
cout<<str<<endl;
cout<<sizeof(str)<<endl;
str[0]='X';
cout<<str<<endl;
pstr[0]='X';
cout<<pstr<<endl;</span>
在VC++6.0下运行结果如图1所示,编译通过,运行出错,因为不能对pstr[0]赋值,pstr开始指向一个字符串常量,该字符串常量存储中的字符依次存储在内存中一块连续的区域,它的值编译后便不再修改,程序中没有为指针pstr分配空间,不能对其赋值。 还有一点
cout<<str<<endl,是输出整个字符数组的内容,考试的时候误以为是输出str[0](以前没注意过字符数组的输出)
2.考察了基类、派生类的关系
class base_item
{
public:
base_item(){cout<<"base_item construct"<<endl;}
void funA() const {cout<<"bases_item funA()"<<endl;}
virtual void funB()const {cout<<"bases_item funB()"<<endl;}
virtual ~base_item(){cout<<"base_item destruct"<<endl;}
};
class derived_item :public base_item
{
public:
derived_item(){cout<<"derived_item construct"<<endl;}
void funA() const{cout<<"derived_item funA()"<<endl;}
virtual void funB()const {cout<<"derived_item funB()"<<endl;}
virtual ~derived_item(){cout<<"derived_item destruct"<<endl;}
};
void print(const base_item& B)//这里是<span style="font-family: 'Microsoft YaHei';">base_item对象B的const引用,注意B只能调用相关的 const类型的函数</span>
{
B.funA();
B.funB();
}
在VC++6.0下运行结果如图2所示