Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与oops相比,不能将其视为朋友_Java_C++_Oop - Fatal编程技术网

Java 与oops相比,不能将其视为朋友

Java 与oops相比,不能将其视为朋友,java,c++,oop,Java,C++,Oop,我需要你帮助我理解一个问题 与oop相比,以下哪项不能被视为朋友: 作用 阶级 反对 算子函数 我想答案应该是操作员功能,但我不确定 谁能给我解释一下 提前感谢。反对 一个对象是实例化的,其他对象不是 想想“朋友”是什么意思。这就像模式一样,您定义了访问,但都是在编译时完成的。。。一个对象是一个运行时的东西,所以友谊是没有意义和不可预测的。一旦你的代码被编译,它就会被简化为指针和引用,并且不会进行任何检查 另外,为了进一步澄清,要在对象和其他对象之间,或者在对象和其他任何对象之间创建友好关系,您

我需要你帮助我理解一个问题

与oop相比,以下哪项不能被视为朋友:

  • 作用
  • 阶级
  • 反对
  • 算子函数
  • 我想答案应该是操作员功能,但我不确定 谁能给我解释一下

    提前感谢。

    反对

    一个对象是实例化的,其他对象不是


    想想“朋友”是什么意思。这就像模式一样,您定义了访问,但都是在编译时完成的。。。一个对象是一个运行时的东西,所以友谊是没有意义和不可预测的。一旦你的代码被编译,它就会被简化为指针和引用,并且不会进行任何检查


    另外,为了进一步澄清,要在对象和其他对象之间,或者在对象和其他任何对象之间创建友好关系,您不能在编译/编码时这样做,因为您不知道将存在哪些对象,也不能引用它们。。。这样的行为,或者说类似的行为,可以通过一种语言来实现,但是友谊必须在运行时添加,这将是一种高级语言非常有趣的特性,但与我们所知道的友谊完全不同

    你的问题只对C++有意义。

  • friend
    与OOP不同
    friend
    允许您公开更少的成员变量和成员函数,从而帮助实现OOP
    friend
    允许您将您的
    private
    成员公开给一个特定的外部组件。如果没有
    friend
    ,您就必须将成员
    公开
    ,并向全世界公开

  • 对象不能成为朋友
    friend
    是一种控制成员访问的机制,因此,像
    public
    protected
    private
    说明符一样,这是一个编译时问题。相反,对象存在于运行时

  • “运算符函数”(正确的词应该是“重载运算符”)实际上与正常函数没有太大区别。您可以主要考虑重载运算符作为具有有趣名称的函数。就
    friend
    而言,例如,调用函数
    Add
    +
    没有区别



  • (**)我意识到,当你考虑模板元规划或<代码> COSTEXPR<<代码>时,这是过于简单化了。

    你认为是错误的。在C++中,操作符函数一直是FREST。还要注意的是,并非您在此处标记的所有语言都支持该功能。@πάνταῥεῖ 好啊那个么什么才是正确的答案呢?这很难查到吗?这可能会帮助你们理解“朋友”的含义。这就像模式一样,您定义了访问,但都是在编译时完成的。。。一个对象是一个运行时的东西,所以友谊是没有意义和不可预测的。一旦你的代码被编译,它就会被简化为指针和引用,并且不会进行任何检查。此外,为了进一步澄清,要在对象和其他对象之间,或者在对象和其他任何对象之间创建友好关系,你不能在编译/编码时这样做,因为你不知道将存在什么对象,也不能引用它们。。。这样的行为,或者类似的行为,可以通过一种语言来实现,但是友谊必须在运行时添加,这将是一种高级语言非常有趣的特性,但正如我们所知,友谊是完全不同的特性。添加注释来回答,因为注释是有限的生命。