摘要: 今天看某个面试题,实现memcpy,吓了一跳,怎么还要求考虑内存重合啊。印象中不是这样子的啊。于是将以前写的代码翻出来看了看。在这里重新温习下。1.memmove函数原型:void*memmove(void*dest, constvoid*source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。count为要移动的字符的个数函数说明:memmove用于从source拷贝count个字符到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中。2. 阅读全文
posted @ 2011-09-15 15:35 westfly 阅读(1090) 评论(4) 推荐(0) 编辑
摘要: C++中的空类,默认产生哪些类成员函数?[C++易]答:class Empty{public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数~Empty(); // 析构函数 Empty&operator=( const Empty& ); // 赋值运算符 Empty*operator&(); // 取址运算符const Empty*operator&() cons... 阅读全文
posted @ 2011-09-15 15:02 westfly 阅读(594) 评论(1) 推荐(0) 编辑
摘要: 遇到这样一道题,注释以及很清楚,覆盖是覆盖了,但是可以用using指令使其可见,并成功调用,注意灰显部分。#include <iostream>using namespace std;class Base{public: virtual void func(){cout<<"Base::func()"<<endl;} void gunc(){cout<<"Base::gunc()"<<endl;}};class Derived:public Base{public: void func(){co 阅读全文
posted @ 2011-09-15 11:58 westfly 阅读(262) 评论(0) 推荐(0) 编辑
摘要: abc说明:定义 del 函数的时候,abc 的析构函数未定义,因此不会调用。看如下代码,试解释器运行结果#include <stdio.h>class abc;void del(abc *pobj){ delete pobj;}class abc{public: abc() { printf("abc\r\n"); } ~abc() { printf("~abc\r\n"); } }; int main(int argc, char *argv[]) { abc *pobj = new abc; de... 阅读全文
posted @ 2011-09-15 11:38 westfly 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 题目:类CMyString的声明如下:class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString& str);private: char* m_pData;}; 请实现其赋值运算符的重载函数,要求异常安全,即当对一个对象进行赋值时发生异常,对象的状态不能改变。分析:首先我们来看一般C++教科书上给出的赋值运算符的重载... 阅读全文
posted @ 2011-09-15 10:50 westfly 阅读(648) 评论(0) 推荐(1) 编辑