美文网首页
1.C++ 关于类函数访问同类对象的私有变量

1.C++ 关于类函数访问同类对象的私有变量

作者: 久伴licy | 来源:发表于2017-09-22 19:44 被阅读0次

一般理解类的私有成员变量不能通过对象直接进行访问,需要借助公有成员函数对其进行相关的操作.但是有一类情况可以直接通过对象对私有成员变量进行访问.

class stock{

private:
   double total_val ;
public:
   stock(double num);
   stock  topval(stock s);
};

stock::stock(double num)
{
   total_val = num;
}
stock  stock::topval(stock  s)
{
   if (s.total_val > total_val)
       return s;
   else
       return *this;
}

int main()
{
   stock a(10), b(11),c(1);
   c = a.topval(b);
   return 0;
}

在if (s.total_val > total_val)中就直接使用对象s访问了其私有成员变量total_val,原理为:

(1).封装是编译期的概念,是针对类型而非对象的,在类的成员函数中可以访问同类型实例对象的私有成员变量.
(2).在编译器遇到total_val变量时,将会在其所属对象s所属的类域中查找该符号,既然查找的是类域,由于topval函数属于stock类,topval函数可以访问stock类中的所有变量,所以topval函数可以找到s.total_val.

相关文章

  • 1.C++ 关于类函数访问同类对象的私有变量

    一般理解类的私有成员变量不能通过对象直接进行访问,需要借助公有成员函数对其进行相关的操作.但是有一类情况可以直接通...

  • Web36.this_原型链_继承

    三种变量 实例变量: (this)类的实例产能访问到的变量静态变量: (属性)直接类型对象能访问到的变量私有变量:...

  • 单下划线和双下滑线

    有三种情况 : _x :私有变量(保护变量),只有类对象和子类对象能够访问这些变量(但是避免类外面使用) __x:...

  • JavaScript函数表达式——私有变量

    私有变量 任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量,私有变量包括函数的参数,...

  • 2018-12-06

    类的属性-总结 类属性,也是公有属性 类的私有属性 对象的公有属性 对象的私有属性 内置属性 函数的局部变量 全局...

  • 友元函数/友元类

    引入 当某一类或函数需要访问或使用另一类的私有函数或变量时,引入友元。例如:你的银行卡号是私有的,别人不能访问,但...

  • 7.4私有变量

    任何函数中定义的变量,都可以认为是私有变量,因为不能在外部访问访问这些变量。私有变量包括函数的参数,局部变量,和在...

  • 类和实例

    类的特征 公有方法私有方法属性私有变量析构函数:(析构函数与构造函数相反,当对象结束其生命周期,如对象所在的函数已...

  • 友元函数

    (1).友元函数为了实现类之间数据共享时,减少系统开销,提高效率。允许外面的类或函数去访问类的私有变量和保护变量,...

  • iOS:如何访问一个对象的私有属性?(一)

    在下对于访问一个对象的私有变量或者是对象的父类的私有变量给出了两种不同的方式。通过KVC和runtime的方式,此...

网友评论

      本文标题:1.C++ 关于类函数访问同类对象的私有变量

      本文链接:https://www.haomeiwen.com/subject/qmofextx.html