类的对象不能直接访问类声明的私有成员变量,否则破坏了信息隐藏的目的。
在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)成员变量的常用方法相关推荐

  1. java 访问类变量_如何访问类的成员变量和方法

    在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变量和方法,今天百分网小编为大 ...

  2. java访问成员变量和方法_如何访问类的成员变量和方法

    如何访问类的成员变量和方法 在Java应用程序中,经常需要访问类的成员变量和方法,以实现程序的功能,请问应该如何访问类的成员变量和方法?在Java中通过类的实例(即对象)点(.)运算符来访问类的成员变 ...

  3. 在Objective C中定义私有的成员变量

    使用了LLVM以后,终于可以定义私有的成员变量了. @interface RadioViewController () { @privateUIBackgroundTaskIdentifier tas ...

  4. 反射练习- 改变private成员变量的值

    package com.zj.reflect;import java.lang.reflect.Field;/*** 使用反射改变private成员变量的值* @author zhengjiong* ...

  5. java变量访问权限_JAVA成员变量的访问权限

    成员变量的访问权限 我看到很多地方谈到关于Java里变量的访问权限问题. 很多地方认为对于默认修饰符的理解是这样的: 不写时默认为friendly 但就我所知Java里没有 friendly这一关键字 ...

  6. C++中private成员变量和protect成员变量的区别

    保护成员和私有成员很相似,但是就是在子类中,保护成员可以访问,而私有成员不能被访问,也就是说子类中的函数,可以访问父类中的保护成员变量,而不能访问私有成员变量,要想访问父类中的私有成员变量,只能通过父 ...

  7. 私有private成员和保护protected成员的区别

    保护成员变量或函数与私有成员十分相似,但有一点不同,保护成员在派生类(即子类)中是可访问的. private 成员只能被本类成员(类内)和友元访问,不能被派生类访问: protected 成员可以被派 ...

  8. 友元函数、友元类、访问私有数据成员、友元关系[C++]

    友元函数(friend function) 1. 什么是友元函数?     一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员 2. 友元函数的用 ...

  9. 3第一周课后练习#183;阅读计划(3)-使用函数来访问私有数据成员

    /** Copyright (c) 2015, 计算机科学学院,烟台大学* All rights reserved.* 文件名:test.cpp* 作 靠:刘畅* 完成日期:2015年 3 一个月 2 ...

最新文章

  1. 一点一滴培养你的领导气质
  2. 行业软件和鸿蒙,华为鸿蒙负责人王成录:育人才,打造国产软件“根”能力
  3. GreenDao自带异步操作类简析
  4. 机器学习多目标分类模型解法
  5. 浅析 Linux 初始化系统(系统服务管理和控制程序/Init System) -- sysvinit/systemvinit(System V init)
  6. CORS(跨域资源共享)
  7. 正则表达式-用户名规则之只含汉字、数字、字母、下划线
  8. 【VBA】多条件去重
  9. 解读ASP.NET 5 MVC6系列(14):View Component
  10. firefox android 插件,Firefox for Android将很快迎来更多扩展插件
  11. java分子分母题,JAVA黄金分割点练习题
  12. The Second Assignment
  13. 你想在网易云音乐中播放 QQ 音乐中下载的歌曲吗?用上它后助你秒实现!
  14. CAD绘图的规范要点
  15. Saber电路仿真软件
  16. excel选择性粘贴为何是html,Excel2016中选择性粘贴功能的使用方法
  17. VennDiagram 画文氏图/维恩图/Venn
  18. K - Tourists' Tour(图染色)
  19. C#叠加合并半透明图像的两种实现
  20. 牛客网剑指offer(Python版)

热门文章

  1. Undefined function 'adb' for input arguments of type 'double'.
  2. opencv 多边形近似物体形状
  3. 机器学习案例系列教程——距离度量方法总结
  4. python机器学习案例系列教程——极大似然估计、EM算法
  5. 使用Git将本地文件夹同步至github
  6. matlab2018安装摄像头驱动以及如何调用摄像头
  7. linux ns级定时器_linux学习13,一文弄懂内核的“绝对公平调度”机制是如何设计的...
  8. Sublime Text 2 快捷键用法大全(转)
  9. 19_07_09校内训练[分组]
  10. Android软件开发之SharedPreferences