2013年5月23日

String类定义与部分函数实现

摘要: . 已知String类定义如下:classString{public: String(const char*str=NULL);//通用构造函数 String(const String&another);//拷贝构造函数 ~String();//析构函数 String&operater=(constString&rhs);//赋值函数private: char*m_data;//用于保存字符串};尝试写出类的成员函数实现。答案:String::String(constchar*str){if( str==NULL )//strlen在参数为NULL时会抛异常才会有这步判 阅读全文

posted @ 2013-05-23 11:16 samules 阅读(189) 评论(0) 推荐(0) 编辑

C++操作符重载

摘要: 1在类中重载+=操作符赋值操作符必须定义为成员函数,无论形参为何种类型赋值必须返回*this的引用?123456789101112131415161718192021classLove{public:intstr;intagi;intintel;Love(): str(0), agi(0) , intel(0){}Love(inta , intb ,intc): str(a), agi(b) , intel(c){};Love& operator+=(constLove &test){str += test.str;agi += test.agi;intel += test.i 阅读全文

posted @ 2013-05-23 11:07 samules 阅读(177) 评论(0) 推荐(0) 编辑

static 修饰符

摘要: 在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。好处:定义全局静态变量的好处:<1>不会被其他文件所访问,修改<2>其他文件中可以使用相同名字的变量,不会发生冲突。~~~~~~~全局变量和全局静态变量的区别1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个 阅读全文

posted @ 2013-05-23 10:54 samules 阅读(188) 评论(0) 推荐(0) 编辑

C++拷贝构造函数(深拷贝,浅拷贝)

摘要: 对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a;而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#includeusingnamespacestd;classCExample{private: inta;public: CExample(intb) {a=b;} voidShow() {coutusingnamespacestd;classCExample{private:inta;public:CExample(intb){a=b;}CExample(constCExample&C){a= 阅读全文

posted @ 2013-05-23 10:34 samules 阅读(128) 评论(0) 推荐(0) 编辑

导航