摘要: 第二种自动类型转换的方法是运算符重载,其是形式是operator 目的类型(); 这个函数通过在关键字operator后跟随想要转换到的类型的方法,将当前类型转换为希望的类型。这种形式的运算符重载是独特的,因为没有指定返回值类型,其返回值类型就是正在重载运算符的名字。 在自动类型转换技术中,构造函数 阅读全文
posted @ 2016-07-11 13:25 阿瞒123 阅读(280) 评论(0) 推荐(0)
摘要: 在c/c++中,如果编译器看到一个表达式或函数调用使用了一个不适合的类型,它经常会执行一个自动类型转换,从现在的类型到所有要求的类型。在内置类型中我们经常看到例如: char c; int i=c; 上述语句就执行了自动类型转换。但是上面只是内置类型的自动类型转换,在c++中,还支持用户自定义的自动 阅读全文
posted @ 2016-07-10 22:06 阿瞒123 阅读(804) 评论(0) 推荐(0)
摘要: 我们知道运算符重载函数可以选择两种形式(1)成员函数形式 (2) 全局友元函数形式。那么我们应该怎么样选择呢? 首先按照语法规定有的运算符只能由成员函数重载的运算符,例如operator[],operator=。而有些运算符既可以用成员函数重载,也可以冲全局友元函数重载,例如:++ ,——,+,—, 阅读全文
posted @ 2016-07-07 23:18 阿瞒123 阅读(251) 评论(0) 推荐(0)
摘要: 在《运算符重载(一)》我们介绍了运算符重载的基本概念,以及基本形式。那么再运算符重载中,参数的传递有什么遵循的原则?返回值的类型又遵循什么原则呢?这些问题都 在这一篇文章中回答。 (1)运算符重载函数中的参数个数应该有几个 运算符重载函数的参数个数取决于两个因素。一是运算符是一元运算符还是二元运算符 阅读全文
posted @ 2016-07-01 20:28 阿瞒123 阅读(254) 评论(0) 推荐(0)
摘要: 什么是运算符重载? 运算符重载就是把标准运算符(例如=,-,+,>等)应用于我们自己定义的数据类型的对象。其实重载本身的含义就是一次多意。函数重载就是一个函数名有多种不同的含义。 运算符重载的好处是直观自然,可以提高程序的可读性 体现了C++的可扩充性 运算符重载仅仅只是语法上的方便,它是另一种函数 阅读全文
posted @ 2016-06-28 16:37 阿瞒123 阅读(230) 评论(0) 推荐(0)
摘要: 什么是友元? 在类中,一般数据成员为类的私有成员,而类的私有成员只能被类的成员函数所访问,例如类A中有一个成员变量x,那么类B中的成员函数不能访问类A中的x。全局函数也是没办法直接访问类A中的x。而友元给我们提供了一个种方法,可以用不属于A的成员函数来直接访问类A中的x。 友元可以是(1)全局函数, 阅读全文
posted @ 2016-06-28 13:30 阿瞒123 阅读(190) 评论(0) 推荐(0)
摘要: 在c++中,可以声明一个静态的成员对象,但是此时仅仅声明,没有定义,也不会创建这个内部的静态成员对象。只有在类体外部定以后才能创建这个对象。 上述代码中,我们并没有对成员对象进行定义,仅仅是引用性声明,此时并不会为其分配空间。运行结果如下 我们看到运行结果展示,inner的构造函数与析构函数都没有被 阅读全文
posted @ 2016-06-27 22:19 阿瞒123 阅读(815) 评论(0) 推荐(0)
摘要: 我们知道当调用默认拷贝构造函数时,一个对象对另一个对象初始化时,这时的赋值时逐成员赋值。这就是浅拷贝,当成员变量有指针时,浅拷贝就会在析构函数那里出现问题。例如下面的例子: 所以此时默认拷贝构造函数就出现问题,此时应该提供自己的拷贝构造函数,来实施深拷贝。 在类里面添加拷贝构造函数 此时运行结果就是 阅读全文
posted @ 2016-06-27 16:18 阿瞒123 阅读(172) 评论(0) 推荐(0)
摘要: 拷贝构造函数:拷贝构造函数就是在用一个类对象来创建另外一个类对象时被调用的构造函数,如果我们没有显示的提供拷贝构造函数,编译器会隐式的提供一个默认拷贝构造函数。 拷贝构造函数的定义是X(const X& ){} 记住拷贝构造函数的只有一个参数,并且这个参数是类类型的const引用,参数不能是普通的值 阅读全文
posted @ 2016-06-27 11:12 阿瞒123 阅读(308) 评论(0) 推荐(0)
摘要: (1)构造函数初始化列表: 构造函数的执行分为两个阶段:(1)初始化阶段 (2)普通计算阶段 初始化是我们定义一个变量,分配内存时直接给变量赋值,例如 int i=10; 而int k; k=10;这样的就不是初始化,是赋值。所以在初始化列表里面的初始化才是真正的初始化,即初始化阶段。而在构造函数内 阅读全文
posted @ 2016-06-25 17:32 阿瞒123 阅读(394) 评论(0) 推荐(0)