外部的函数,访问类中的私有变量
#include <iostream>
using namespace std;
class Message
{
public:
Message(int a,int b):x(a),y(b){}
friend void showMessage(Message &msg);
private:
int x;
int y;
};
void showMessage(Message &msg)
{
cout<<"a:"<<msg.x<<endl;
cout<<"b:"<<msg.y<<endl;
}
int main()
{
Message msg(1,2);
showMessage(msg);
return 0;
}
A的成员函数,作为B的友元函数,访问B的私有成员
#include <iostream>
using namespace std;
class Message_B;
class Message_A{
public:
void showMessage_B(Message_B &msg_b);
};
class Message_B{
public:
Message_B(int x,int y):a(x),b(y){}
friend void Message_A::showMessage_B(Message_B &msg_b);
private:
int a;
int b;
};
void Message_A::showMessage_B(Message_B &msg_b)
{
cout<<"a:"<<msg_b.a<<endl;
cout<<"b:"<<msg_b.b<<endl;
}
int main()
{
Message_A msg_a;
Message_B msg_b(1,2);
msg_a.showMessage_B(msg_b);
return 0;
}
分享到:
相关推荐
私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦。
1. 友元的使用。 2. 掌握重载函数的实现方法。 3. 综合应用。
一 友元 类似 java 中享元模式:实例的共享(ImageLoader Lru 算法 存储图片) 友元:类或函数的共享 优点:提高效率、表达清晰 缺点:破坏封装性 ...友元函数不能被派生类继承 ...友元函数不能使用this
友元函数不是成员函数 友元函数只能访问类中私有成员 友元函数破坏隐蔽性,尽量少用 友元函数说明在类体内,使用关键字friend ~B 下列关于派生类的描述中,错误的是( )。 派生类至少应有一个...
4、 如果我们希望使用某个友元函数name我们必须在友元声明之外再专门对函数进行一次什么 5、 为了使友元对类的用户可见我们通常把友元的声明与类本身放置在同一个头文件中 6、 友元函数的定义不使用类作用域符合 .h...
3.(1)将下例程序中的display函数不放在Time类中,而作为类外的普通函数,然后分别在Time和Date类中将display声明为友元函数。在主函数中调用display函数,使得display函数分别引用Time和Date两个类的对象的私有...
一般地,线程要读写类的私有成员变量,只有两种方法:将全局函数声明为类友元friend,或者使用静态的成员函数static。那非静态的成员函数呢?一般地方都说的是,不行,做不了。。。为什么不行?都是代码区的代码,...
相对于Java而言,友元是C++中特有的一种元素,很多教材上对其介绍的相对较少,因此初学的时候往往不能很快掌握,本文总结了友元的用法和一些注意的地方,供大家参考借鉴。希望能对初学C++的朋友起到一点帮助作用。 ...
2 protected: 只有类本身及其派生类和其友元函数,友元类可以访问. 3 private: 只有类本身及其友元函数,友元类可以访问. 4 friend: 用于定义友元函数友元类. 在类里声明的一个普通函数,在前面加上friend修饰符,这个...
主要介绍了C++中友元的实例详解的相关资料,希望通过本文大家能掌握友元的使用方法,需要的朋友可以参考下
C++练手,封装,类的基本用法,默认构造函数,方法的实现,友元函数应用
总共有四个实验和相关运行结果截图,从而熟悉c++的相关主要概念 1、 了解类和对象的基本概念 2、 了解运算符重载的基本概念 ...6、 掌握友元函数的使用方法 7、 掌握运算符重载的方法 8、 掌握对象指针的使用方法
掌握构造函数的定义与使用;掌握友元的定义与使用;掌握运算符的重载定义与使用。 二、设备与环境 微型计算机、Windows 系列操作系统 、Visual C++6.0软件 三、实验内容 设计复数类,重载+,-,*,/,,>>等运算符
c++中的构造器 和析构器 以及友元函数的使用方法 对初学者还是比较有用的
学生管理系统采用顺序表、模版类、 友元函数等C++比较不经常见的模式来实现,可以帮助你更好的弄清楚C++的一些特殊用法。
掌握友元、静态成员的概念和使用方法 实验内容 编写一个程序,实现如下要求: 构造函数重载 构造函数设置默认参数 有一个友元函数 有一个静态数据成员 有一个静态成员函数 使用不同的构造函数...
1.掌握对象成员的使用 2.掌握友元函数的使用。 3.掌握静态数据成员和静态成员函数的用法。
理解利用友元关系实现数据共享的机制,掌握类的友元函数以及友元类的实现方 法; 4.学习多文件结构在C++程序中的使用。 二、实验环境 一台PC机,Windows XP操作系统,Visual C++ 6.0开发环境。 三、实验内容 1....
(1)掌握类与对象的定义与使用方法,理解面向对象方法中通过对象间传递消息的工作机制。(2)正确掌握类的不同属性成员的使用...(4)掌握友元函数和友元类的定义和使用。(5)基本掌握指针和引用作为函数参数的应用。
3.(选做)定义类X、Y、Z,函数h(X *),满足:类X有私有成员i,Y的成员函数g(X *)是X的友元函数,实现对X的成员i加1,类Z是类X的友元类,其成员函数f(X *)实现对X的成员i加5,函数h(X *)是X的友元函数,...