如题,否则会在调用"std::cout<<this"时”偷偷“调用这个友元函数。本来是想看这个对象的指针值,却看到”不想看到的事情”。#include<iostream>
usingstd::cout;
usingstd::endl;
usingstd::ostream;
classTree{
intheight;
public:
Tree(inttreeHeight):height(..
分类:
其他好文 时间:
2017-06-15 16:20:57
阅读次数:
157
运算符重载 1.运算符重载基础 2.运算符重载的规则 3.重载双目运算符 4.重载单目运算符 5.重载流插入和提取运算符 6.类型转换 7.定义自己的string类 1.运算符重载基础 运算符重载就是对已有的运算符赋予新的含义,实现新的功能。前面我们已经使用过运算符重载,如“+”,它可以对int、f ...
分类:
编程语言 时间:
2017-05-07 00:13:48
阅读次数:
312
------------------siwuxie095 二元运算符重载 所谓 二元运算符,即 这个符号与两个操作数进行运算 (1)加号 + 的重载 加号 + 的重载方式有两种:一种是友元函数重载,一种是成员函数重载 1)先来看成员函数重载,如下: 定... ...
分类:
其他好文 时间:
2017-05-06 14:22:56
阅读次数:
310
----------------siwuxie095 友元类 友元类的定义与友元函数的定义非常类似 看如下实例: 定义一个坐标类:Coordinate 使用方法:使用 friend 关键字跟一个类的类名即可 需要注意的是: 如果我们声明一个友元类 Circle,需要在 ... ...
分类:
其他好文 时间:
2017-05-05 19:25:56
阅读次数:
293
#include <stdio.h>struct node_s {private: int x; int y;public: node_s(int x, int y) { this->x = x; this->y = y; } friend void print(node_s &p);};void ...
分类:
其他好文 时间:
2017-04-26 22:59:49
阅读次数:
193
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接【程序阅读】阅读并执行以下的程序,找出当中出现构造函数、友元函数、运算符重载、静态数成员语法现象出现的位置。细致体会其使用方法,在以后的设计中可以灵 ...
分类:
编程语言 时间:
2017-04-26 13:49:39
阅读次数:
323
1. 友元函数和友元类的需要: 类具有封装和信息隐藏的特性。 只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。 非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。 另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参 ...
分类:
编程语言 时间:
2017-04-26 11:01:45
阅读次数:
156
1. 问题的引入——将operator*模板化 Item 24中解释了为什么对于所有参数的隐式类型转换,只有非成员函数是合格的,并且使用了一个为Rational 类创建的operator*函数作为实例。在继续之前建议你先回顾一下这个例子,因为这个条款的讨论是对它的扩展,我们会对Item 24的实例做 ...
分类:
编程语言 时间:
2017-04-11 09:37:46
阅读次数:
273
友元函数(不属于类) 可以访问类的私有变量,以及私有函数 友元函数在类内声明需要friend关键字,类外定义就不需要 友元函数可以直接在类内定义 友元函数必须包含对象指针 友元类(不适用继承,只适用当前类) 若F类是A类的友元类,则F类的所有成员函数都是A类的友元函数 友元类通常设计为一种对数据操作 ...
分类:
编程语言 时间:
2017-04-08 10:08:12
阅读次数:
272
在类模板中可以出现三种友元声明:(1)普通非模板类或函数的友元声明,将友元关系授予明确指定的类或函数。(2)类模板或函数模板的友元声明,授予对友元所有实例的访问权。(3)只授予对类模板或函数模板的特定实例的访问权的友元声明。 要注意的是,友元函数并非成员函数,是改变了它对类成员的访问权限。 (1)没 ...
分类:
编程语言 时间:
2017-03-31 15:44:43
阅读次数:
218