C++类外函数怎么访问类内私有变量

本人初学,遇到两种方法

一、

先见程序:

#include<iostream>
using namespace std;
class Data {
private:
    int need;
public:
    void setData(int n) //设置函数
    {
        need = n;
    }
    int getData()//获取函数
    {
        return need;
    }
};
void func(Data& obj) {
    int m = obj.getData();
    //对私有变量处理
}
int main() {
    Data a;
    a.setData(10);
    func(a);
    return 0;
}

这是用设置函数和获取函数来获得类中私有变量访问权限的一种方法。依照本人的理解就是拐个弯,在类里弄两个函数,然后在类的外面用这两个函数来间接访问私有变量。

二、

再见程序:

#include<iostream>
using namespace std;
class Data {
private:
	int need;
	//friend void output(Data& obj);
public:
	void setNeed(int n)//设置函数赋值 
	{
		need = n;
	}
	friend void output(Data& obj);//友元函数声明
};
void output(Data& obj)//友元函数定义 
{
	int n = obj.need;
}
int main() {
	Data a;
	a.setNeed(10);
	output(a);
	return 0;
}

第二种方法是用友元函数,在类体里面声明一下友元函数,之后就能在类外面去访问私有变量了。

本人刚开始学编程,以上提供的代码大家图个乐就行。但这两种方法还是有用的。有什么问题,请一定指出来,谢谢你能看到这里。
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值