相同的class的各位object互为友元(friend) 这句话是啥意思? 我们来看一段代码: 1 class complex{ 2 3 private: 4 5 int r,i; 6 public: 7 complex(int rr=0,int ii=0):r(rr),i(ii){} 8 int func(complex* c){ 9 10 return c->r+c->i; 11 12 } 13 }; 为什么在一个class里的func函数可以访问这个class创建的另一个object?…
本篇笔记以复数类(不含指针的类)为例进行面向对象的学习 ========================================================= 复数类的声明: class complex { public: complex (, ): re (r), im (i) { } complex& operator += (const complex&); complex& operator -= (const complex&); complex&am…
1.两种典型类 Complex 无指针 String 有指针 编写思路差异较大 2.使用Class声明:Object Based.类与类之间的关系:Object Oriented 3.头文件的布局 #ifndef//防御式声明 #define classA{...}; void A::func(){...} #endif 4.inline function 关键字inline,高效率,但编译器未必都能实现 5.constructor 可重载,注意使用初始化列表,能够在对象的初始化阶段操作,不带指…
经典的类设计分类 带指针类 不带指针类 Header文件的布局 #ifndef __COMPLEX__ #define __COMPLEX__ #include <iostream.h> class complex //前置申明 class complex { ...//类声明 } complex::function()...//类定义 #endif 类声明 class complex //class head { //class body public: complex (double r…
前言:友元对于我来说一直是一个难点,最近看了一些有关友元的课程与博客,故在此将自己的学习收获做一个简单的总结 一.什么是友元 在C++的自定义类中,一个常规的成员函数声明往往意味着: • 该成员函数能够访问其所在类的私有部分 • 该成员函数位于其所在类的作用域之中 • 该成员函数必须由一个对象去激活从而被调用(通过this指针来实现) 如果将一个函数声明为另一个类的友元,则可以使该函数只具有上面的第一个特性,即可以使该函数访问类中的私有部分. 友元函数的语法:friend+普通函数声明 友元类的…
友元和类的关系还可以更复杂. 举个例子,假设出现了交互式遥控器,交互式遥控器能够让您回答电视节目中的问题,如果回答错误,电视将在控制器上产生嗡嗡声. 这个例子的问题,可以使用新的友元关系来解决.我把它叫做相互的友情. 即一些Remote方法能够像前面那样访问Tv对象,而一些Tv方法也能影响Remote对象. 这可以通过让类彼此成为对方的友元来实现.即相互的友元 即除了Remote是Tv的友元外,Tv还是Remote的友元. 这里对于使用Remote对象的Tv方法,其原型可以再Remote方法类声…
我们知道,在一个类总可以有公有的(public)成员和私有的(private)成员.在类外可以访问公用成员,只有本类中的函数可以访问本类的私有成员. 现在,我们学习一种新的情况--友元. 在C++中,这种关系以关键字friend声明.友元可以访问与其有好友关系的类中的私有成员.包括友元函数和友元类. 友元函数 如果在本类意外的其他地方定义了一个函数(这个函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数),在类体中用friend对该函数进行声明,此函数就称为本类的友元函数.一个类的友元…
人类社会的friend VS C++世界的friend 现实世界中,我们自己很多物品,朋友是可以使用的,但是陌生人就不行.那么money,朋友可以随便拿吗?这要是你和friend的关系深浅而定.人类社会friend多多少少还是会有些限制.而C++中的friend才是真正的friend,class中的money(这里指private data可以随便拿).用法如下 C++ friend具有如下特性: friend不是类的成员,但是可以访问class所有成员 friend不受access level…
第8章     类和对象的创建 [内容提要] 类和对象 构造函数和析构函数 对象数组与对象指针 静态成员 友元 静态函数 虚函数 [重点与难点] 8.1 类和对象 8.1.1 类的定义 类实质上是用户自定义的一种特殊的数据类型,它不仅包含相关的数据,还包含能对这些数据进行处理的函数,同时,这些数据具有隐蔽性和封装性.类中包含的数据和函数统称为成员,数据称为数据成员,函数称为成员函数,它们都有自己的访问权限.类定义一般分为两部分,即说明部分和实现部分.说明部分用于说明该类中的成员,实现部分用于对成…
技术在于交流.沟通,转载请注明出处并保持作品的完整性. 概要: 知识点1 构造函数与析构函数 知识点2 参数与返回值 知识点3 const 知识点4 函数重载(要与重写区分开) 知识点5 友元 先以C++的两大经典class(complex 不含指针,   string 含指针)之一 complex(复数类) 做例子. #ifndef complex_hpp //防止头文件重复 #define complex_hpp #include <stdio.h> class complex { pub…