zoukankan      html  css  js  c++  java
  • C#中实现C++中的友元类

    最近做一个小程序,一个类A(负责显示处理)需要大量调用类B(负责数据处理)的函数,我最先想到的C++中的友元概念,因为类B中的这些函数并不希望public,它只是允许类A调用监测.

    网上搜索了一下,没有好的简单实现,但是我想到了自己以前经常写的一种方式,那不就是最简单的实现吗?

        public class B
        {
            int ma;
            int mb;
    
            void fa();
            void fb();
    
            public class A
            {
                B b;
                public A(B bx)
                {
                    this.b = bx;
                }
                void ff()
                {
                    int ma = b.ma;
                    int mb = b.mb;
                    b.fa();
                    b.fb();
                }
            }
        }

    只需要把类A的定义放在类B的实现之中,这个时候类A就可以访问类B的所有方法和数据量.而且这种方式也容易理解,那就是A要么是B的组成部分之一,A要么是B的寄生部分.只有B存在,A才有存在的意义.

  • 相关阅读:
    POJ 2154
    POJ 1286
    Polycarp's problems
    Greedy Change
    Goods transportation
    Ugly Problem
    Happy Matt Friends
    Dense Subsequence
    Ray Tracing
    Batch Sort
  • 原文地址:https://www.cnblogs.com/flyant/p/4320035.html
Copyright © 2011-2022 走看看