您的位置:首页 > 编程语言 > C语言/C++

C/C++ 笔试、面试题目汇总1——代码相关

2013-06-25 15:10 555 查看
1.求下面函数的返回值( 微软)

#include <string.h>

#pragma warning(disable:4996)       // warning C4996: “strcpy”被声明为否决的

class String
{
public:
String(const char *str = NULL); // 通用构造函数
String(const String &another); // 拷贝构造函数
~String(); // 析构函数
String& operator =(const String &rhs); // 赋值函数
private:
char* m_data; // 用于保存字符串
};

String::String(const char *str)
{
if (str == NULL)    // strlen在参数为NULL时会抛异常才会有这步判断
{
m_data = new char[1];
m_data[0] = '\0';
}
else
{
size_t size = strlen(str) + 1;

m_data =new char[size];
strcpy(m_data,str);
}
}

String::String(const String &another)
{
m_data =new char[strlen(another.m_data) +1];
strcpy(m_data,another.m_data);

}

String& String::operator=(const String &rhs)
{
if (this == &rhs)
return *this;

delete []m_data; //删除原来的数据,新开一块内存

m_data =new char[strlen(rhs.m_data) +1];
strcpy(m_data,rhs.m_data);

return*this ;
}

String::~String()
{
delete []m_data;
}


View Code

5. 引用相关知识

参见《引用相关知识总结》

参考资料: /article/5259763.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: