private是针对类型的

1、    template <class T>
         class Myclass {
                   private:T value;
                   public:
                          void assign(const MyClass<T>&x)
                          {
                                value=x.value;
                           }
     };
2、template <class T>
         class Myclass {
                   private:T value;
                   public:
                         template <class X)
                          void assign(const MyClass<X>&x)
                          {
                                value=x.getValue();
                           }
                    T getValue() const {
                              return value;
                      }
      };

之后有一句话:程序1,因为X与*this的类型相同,因此可以直接存取private成员,程
序2则不可以,必须通过getValue函数实现。private关键字则意味着,除了该类型的创建者和类的内部成员函数之外,任何人都不能存
取这些成员。说的很明白了,private 的限制完全是在类型层次的,而不是说只有在某个对象上调用的
成员函数才能访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在这个问题中,您提到了三个引用内容。从引用中,您提到了一个关于"relocation error"的错误信息,该错误指出在链接时引用了一个未定义的符号。引用涉及一个JavaScript代码片段,其中引入了一个私有符号(Symbol),并展示了如何使用该符号来创建私有属性。引用提到了一个在C#中制作Symbol选择对话框的方法。 针对您的问题,"symbol private",我可以给出以下答案: 在引用中,"symbol private"是指通过使用JavaScript中的私有符号(Symbol)来创建私有属性。私有符号是一种特殊类型的符号,可用于在对象中创建私有成员(属性或方法),这些成员无法被外部访问。使用私有符号可以提供更好的封装和信息隐藏。 在引用的代码示例中,变量"nameSymbol"是一个私有符号,它被用于创建私有属性"name"。在构造函数中,通过将传入的"name"参数赋值给"nameSymbol",实现了将"name"作为私有属性。然后通过原型链的方式给对象添加了一个公共方法"getName",该方法可以访问并返回私有属性"name"的值。通过这种方式,私有属性"name"只能通过公共方法"getName"来访问,而无法直接从外部访问。 这种使用私有符号的方式可以确保数据的封装性和安全性,防止外部直接修改私有属性,同时保持了对象的良好封装性。 因此,在引用中的代码示例展示了如何使用私有符号来创建私有属性,以实现对属性的封装和保护。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值