c++_常考面试题

c++_常考面试题

ID:37916706

大小:103.89 KB

页数:7页

时间:2019-06-02

c++_常考面试题_第1页
c++_常考面试题_第2页
c++_常考面试题_第3页
c++_常考面试题_第4页
c++_常考面试题_第5页
资源描述:

《c++_常考面试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1、引用与指针的区别是什么?指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。此外,就是上面提到的对函数传ref和pointer的区别。2、已知strcpy的函数原型:char*strcpy(char*strDest,constchar*strSrc)其中strDest是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,请编写函数strcpy。char*strcpy(char*strDest, constchar*strSrc){assert(

2、(strDest!=NULL) && (strSrc !=NULL)); // 2分char* address = strDest;  // 2分while((*strDest++=*strSrc++) !='' )       // 2分NULL; return address;   // 2分}int strlen( constchar*str) // 输入参数const{assert(str != NULL); // 断言字符串地址非0int len=0;while((*str++) !='' ) { len++; } return len;}3、已知S

3、tring类定义如下:classString{public:  String(constchar*str=NULL);//通用构造函数  String(constString&another);//拷贝构造函数  ~String();//析构函数  String&operater=(constString&rhs);//赋值函数private:  char*m_data;//用于保存字符串};定义:String::String(constchar*str){if(str==NULL)//strlen在参数为NULL时会抛异常才会有这步判断{m_data=newchar

4、[1];m_data[0]='';}else{m_data=newchar[strlen(str)+1];strcpy(m_data,str);}}String::String(constString&another){m_data=newchar[strlen(another.m_data)+1];strcpy(m_data,other.m_data);}String&String::operator=(constString&rhs){if(this==&rhs)return*this;delete[]m_data;//删除原来的数据,新开一块内存m_data

5、=newchar[strlen(rhs.m_data)+1];strcpy(m_data,rhs.m_data);return*this;}String::~String(){delete[]m_data;}4、#include与#include"file.h"的区别?答:前者是从StandardLibrary的路径寻找和引用file.h,而后者是从当前工作路径搜寻并引用file.h。5、在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”?首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字

6、告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。通常,在模块的头文件中对本模块提供给其它模块引用的函数和全局变量以关键字extern声明。例如,如果模块B欲引用该模块A中定义的全局变量和函数时只需包含模块A的头文件即可。这样,模块B中调用模块A中的函数时,在编译阶段,模块B虽然找不到该函数,但是并不会报错;它会在连接阶段中从模块A编译生成的目标代码中找到此函数extern"C"是连接申明(linkagedeclaration),被extern"C"修饰的变量和函数是按照C语言方式编译和连接的,来看看C++中对类似。(1)在C++中引用C语言中的函数和变量,

7、在包含C语言头文件(假设为cExample.h)时,需进行下列处理:extern"C"{  #include"cExample.h"}而在C语言的头文件中,对其外部函数只能指定为extern类型,C语言中不支持extern"C"声明,在.c文件中包含了extern"C"时会出现编译语法错误。如果C++调用一个C语言编写的.DLL时,当包括.DLL的头文件或声明接口函数时,应加extern"C"{ }。(2)在C中引用C++语言中的函数和变量时,C++的头文件需添加extern"C",但是在C语言中不能直接引用声明了extern"C"的该头文件,应该仅

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。