c++访问私有(private)成员变量的常用方法
类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。
在C++中,为了防止某些数据成员或成员函数从外部被直接访问,可以将它们声明为private,这样编译器会阻止任何来自外部非友元的直接访问。
私有成员变量的常用访问方法如下:
(1)通过公共函数为私有成员赋值
#include <iostream>
using namespace std; class Test
{
private: int x, y;
public: void setX(int a) { x=a; } void setY(int b) { y=b; } void print(void) { cout<<"x="<<x<<'\t'<<"y="<<y<<endl; }
} ; int main()
{ Test p1; p1.setX(1); p1.setY(9); p1.print( ); return 0;
}
(2)利用指针访问私有数据成员
#include <iostream>
using namespace std;
class Test
{
private: int x,y;
public: void setX(int a) { x=a; } void setY(int b) { y=b; } void getXY(int *px, int *py) { *px=x; //提取x,y值 *py=y; }
};
int main()
{ Test p1; p1.setX(1); p1.setY(9); int a,b; p1.getXY(&a,&b); //将 a=x, b=y cout<<a<<'\t'<<b<<endl; return 0;
}
(3)利用函数访问私有数据成员
#include <iostream>
using namespace std;
class Test
{
private: int x,y;
public: void setX(int a) { x=a; } void setY(int b) { y=b; } int getX(void) { return x; //返回x值 } int getY(void) { return y; //返回y值 }
};
int main()
{ Test p1; p1.setX(1); p1.setY(9); int a,b; a=p1.getX( ); b=p1.getY(); cout<<a<<'\t'<<b<<endl; return 0;
}
(4)利用引用访问私有数据成员
#include <iostream>
using namespace std;
class Test
{
private: int x,y;
public: void setX(int a) { x=a; } void setY(int b) { y=b; } void getXY(int &px, int &py) //引用 { px=x; //提取x,y值 py=y; }
};
int main()
{ Test p1,p2; p1.setX(1); p1.setY(9); int a,b; p1.getXY(a, b); //将 a=x, b=y cout<<a<<'\t'<<b<<endl; return 0;
}
c++访问私有(private)成员变量的常用方法相关推荐
- java 访问类变量_如何访问类的成员变量和方法
在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法,今天百分网小编为大 ...
- java访问成员变量和方法_如何访问类的成员变量和方法
如何访问类的成员变量和方法 在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变 ...
- 在Objective C中定义私有的成员变量
使用了LLVM以后,终于可以定义私有的成员变量了. @interface RadioViewController () { @privateUIBackgroundTaskIdentifier tas ...
- 反射练习- 改变private成员变量的值
package com.zj.reflect;import java.lang.reflect.Field;/*** 使用反射改变private成员变量的值* @author zhengjiong* ...
- java变量访问权限_JAVA成员变量的访问权限
成员变量的访问权限 我看到很多地方谈到关于Java里变量的访问权限问题. 很多地方认为对于默认修饰符的理解是这样的: 不写时默认为friendly 但就我所知Java里没有 friendly这一关键字 ...
- C++中private成员变量和protect成员变量的区别
保护成员和私有成员很相似,但是就是在子类中,保护成员可以访问,而私有成员不能被访问,也就是说子类中的函数,可以访问父类中的保护成员变量,而不能访问私有成员变量,要想访问父类中的私有成员变量,只能通过父 ...
- 私有private成员和保护protected成员的区别
保护成员变量或函数与私有成员十分相似,但有一点不同,保护成员在派生类(即子类)中是可访问的. private 成员只能被本类成员(类内)和友元访问,不能被派生类访问: protected 成员可以被派 ...
- 友元函数、友元类、访问私有数据成员、友元关系[C++]
友元函数(friend function) 1. 什么是友元函数? 一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员 2. 友元函数的用 ...
- 3第一周课后练习#183;阅读计划(3)-使用函数来访问私有数据成员
/** Copyright (c) 2015, 计算机科学学院,烟台大学* All rights reserved.* 文件名:test.cpp* 作 靠:刘畅* 完成日期:2015年 3 一个月 2 ...
最新文章
- 一点一滴培养你的领导气质
- 行业软件和鸿蒙,华为鸿蒙负责人王成录:育人才,打造国产软件“根”能力
- GreenDao自带异步操作类简析
- 机器学习多目标分类模型解法
- 浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- sysvinit/systemvinit(System V init)
- CORS(跨域资源共享)
- 正则表达式-用户名规则之只含汉字、数字、字母、下划线
- 【VBA】多条件去重
- 解读ASP.NET 5 MVC6系列(14):View Component
- firefox android 插件,Firefox for Android将很快迎来更多扩展插件
- java分子分母题,JAVA黄金分割点练习题
- The Second Assignment
- 你想在网易云音乐中播放 QQ 音乐中下载的歌曲吗?用上它后助你秒实现!
- CAD绘图的规范要点
- Saber电路仿真软件
- excel选择性粘贴为何是html,Excel2016中选择性粘贴功能的使用方法
- VennDiagram 画文氏图/维恩图/Venn
- K - Tourists' Tour(图染色)
- C#叠加合并半透明图像的两种实现
- 牛客网剑指offer(Python版)
热门文章
- Undefined function 'adb' for input arguments of type 'double'.
- opencv 多边形近似物体形状
- 机器学习案例系列教程——距离度量方法总结
- python机器学习案例系列教程——极大似然估计、EM算法
- 使用Git将本地文件夹同步至github
- matlab2018安装摄像头驱动以及如何调用摄像头
- linux ns级定时器_linux学习13,一文弄懂内核的“绝对公平调度”机制是如何设计的...
- Sublime Text 2 快捷键用法大全(转)
- 19_07_09校内训练[分组]
- Android软件开发之SharedPreferences