两道常见面试题测试程序
来源:互联网 发布:js单例模式 编辑:程序博客网 时间:2024/06/06 12:28
class String{public:String(const char* str);String(const String &other);~String();String& operator = (const String &other);void print();private:char* m_data;};String::String(const char* str){if(str == NULL){m_data = new char;m_data[0] = '\0';}else{m_data = new char[strlen(str)+1];memset(m_data,0,strlen(str)+1);strcpy(m_data,str);}};String::String(const String &other){m_data = new char[strlen(other.m_data)+1];memset(m_data,0,strlen(other.m_data)+1);strcpy(m_data,other.m_data);//other.m_data[strlen(other.m_data)] = 'I';};String::~String(){if(m_data != NULL)delete[] m_data;m_data = NULL;}String& String::operator = (const String &other){if(this == &other)return * this;if(m_data != NULL){delete[] m_data;m_data = NULL;}m_data = new char[strlen(other.m_data)+1];memset(m_data,0,strlen(other.m_data)+1);strcpy(m_data,other.m_data);return * this;}void String::print(){cout<<this<<endl;cout<<&(this->m_data)<<endl;cout<<this->m_data<<endl;char**p = &(this->m_data);cout<<*p<<endl;}class CA{public:CA(){m_nCount++;print();}/*CA(CA&a){m_nCount++;print();}*/~CA(){m_nCount--;print();}void print(){cout<<"m_nCount="<<m_nCount<<endl;};//private:static int m_nCount;};int CA::m_nCount = 0;void print(CA a){cout<<"m_nCount="<<a.m_nCount<<endl;}int main(int argc, char* argv[]){String str("1234567");String str2(str);cout<<sizeof(str2)<<endl;str2.print();CA *p = new CA;print(*p);delete p;system("pause");return 0;}
类对象的内存地址跟数据成员的起始地址是一致的。
注意点
1题,类可以使用本类对象的私有成员。
2题主要是注意,使用默认拷贝构造函数带来的影响。
//私有构造函数class CB{friend CB* CreateObjectEx();private:CB(){print("CB()");}public:~CB(){print("~CB()");}void print(const char* strInfo){cout<<strInfo<<endl;};//static函数创建对象static CB* CreateObject(){return new CB;}};//友元创建对象CB* CreateObjectEx(){return new CB;};
- 两道常见面试题测试程序
- 测试常见面试题
- 测试-常见面试题
- 常见的测试面试题
- 常见软件测试面试题
- 常见测试工程师 面试题
- 软件测试常见面试题
- 常见软件测试面试题
- 常见测试工程师 面试题
- 软件测试常见面试题
- 软件测试常见面试题
- 常见测试工程师 面试题
- 功能测试常见面试题
- 软件测试面试题三:常见的逻辑思维面试题
- 软件测试工程师常见面试题
- 几个常见软件测试面试题
- 常见的软件测试面试题
- 常见的软件测试面试题
- java常用类
- 【转】file_get_contents与curl效率及稳定性问题
- 故事中的人生
- ajax
- vc下动态改变鼠标光标
- 两道常见面试题测试程序
- linux java 环境变量设置
- Spring中的lazy-init详解
- 总结SQL Server窗口函数的简单使用
- USB Core 八
- java高级工程师--------hibernate的知识重点
- MFC类:向注册表或者ini文件写入数据
- mysql 查看存储过程
- PIC单片机之通信协议