C++中:无法访问 private 成员

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

//定义“人类”
class Human {
public: //公有的, 公共的
	void eat(); //类里面的方法,又称为成员函数
	void sleep();
	void work();
	void play();

	string getName();
	int getAge();
	int getSalary();

private:
	string name;
	int age;
	int salary;
};

void Human::eat() {
	cout << "吃鸡屁股, 喝可乐!" << endl;
}

void Human::sleep() {
	cout << "夜深了!上床睡觉!" << endl;
}

void Human::work() {
	cout << "我在工作..." << endl;
}

void Human::play() {
	cout << "玩奇幻角色扮演!" << endl;
}

string Human::getName() {
	return name;
}

int Human::getAge() {
	return age;
}

int Human::getSalary() {
	return salary;
}

int main(void) {
	Human zhangshan;

	zhangshan.eat();
	zhangshan.play();
	zhangshan.sleep();
	zhangshan.work();

	cout << zhangshan.age << endl;

	system("pause");
	return 0;
}

编译器提示:(VC++2010)
在这里插入图片描述

如果想访问private中的成员怎么办?
任性一点这样做:

#include <iostream>
#include <string>
#include <Windows.h>

using namespace std;

//定义“人类”
class Human {
public: //公有的, 公共的
	void eat(); //类里面的方法,又称为成员函数
	void sleep();
	void work();
	void play();

	string getName();
	int getAge();
	int getSalary();

//private:
public:
	string name;
	int age;
	int salary;
};

void Human::eat() {
	cout << "吃鸡屁股, 喝可乐!" << endl;
}

void Human::sleep() {
	cout << "夜深了!上床睡觉!" << endl;
}

void Human::work() {
	cout << "我在工作..." << endl;
}

void Human::play() {
	cout << "玩奇幻角色扮演!" << endl;
}

string Human::getName() {
	return name;
}

int Human::getAge() {
	return age;
}

int Human::getSalary() {
	return salary;
}

int main(void) {
	Human zhangshan;

	zhangshan.eat();
	zhangshan.play();
	zhangshan.sleep();
	zhangshan.work();

	cout << zhangshan.age << endl;

	system("pause");
	return 0;
}

将private改成public, 这样编译器是通过的:
在这里插入图片描述
但是这样是不安全的!这样是不合理的写法!会泄露客户隐私!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值