采用如下的方式访问外部类:

// OperatorTest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include<vector>
using namespace std;
class Obj {
    static int i, j;
public:
    void f() {
        cout << "i:" << i++ << endl;
    }
    void g() {
        cout << "j:" << j++ << endl;
    }
};
int Obj::i = 11;
int Obj::j = 12;

class ObjContainer {
    vector<Obj*> objs;
public:
    class SmartPointer;
    friend class SmartPointer;
    void add(Obj* obj) {
        objs.push_back(obj);
    }
    class SmartPointer {
        ObjContainer& oc;
        int index;
    public:
        SmartPointer(ObjContainer& oc):oc(oc){
            index = 0;
        }
        bool operator++() {
            index++;
            if (index >=oc.objs.size())return false;
            if (oc.objs[index] == 0)return false;
            return true;
        }
        bool operator++(int) {
            return operator++();
        }
        Obj* operator->() {
            return oc.objs[index];
        }
    };
    SmartPointer begin() {
        return SmartPointer(*this);
    }
};
int main()
{
    const int sz = 12;
    ObjContainer oc;
    Obj objs[sz];
    ObjContainer::SmartPointer sp = oc.begin();
    for (int i = 0; i < sz; i++) {
        oc.add(&objs[i]);
    }
    do {
        sp->f();
        sp->g();
    } while (sp++);
}

C++内部类访问外部类相关推荐

  1. 匿名内部类 可以访问外部类_Java 内部类与外部类的互访使用小结

    内部类又称为嵌套类,可以把内部类理解为外部类的一个普通成员. 内部类访问外部类 里面的可以自由访问外面的,规则和static一样.(访问非静态时必须先创建对象) 具体如下: 非静态内部类的非静态方法 ...

  2. 内部类与外部类之间的访问

    目           录 1.内部类与外部类 2.内部类的特点:内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员. 3.内部类与外部类之间的访问 在测试类中调用成员内部类中的方法: ...

  3. 反编译中内部类调用外部类成员问题

    .access$ 反编译偶内部类调用外部类成员问题 很简单的一个测试类源码: public class testOuter { private int a; private int b; privat ...

  4. 深入理解Java中为什么内部类可以访问外部类的成员

    内部类简介 虽然Java是一门相对比较简单的编程语言,但是对于初学者, 还是有很多东西感觉云里雾里, 理解的不是很清晰.内部类就是一个经常让初学者感到迷惑的特性. 即使现在我自认为Java学的不错了, ...

  5. 匿名内部类 可以访问外部类_Java——内部类详解

    说起内部类,大家肯定感觉熟悉又陌生,因为一定在很多框架源码中有看到别人使用过,但又感觉自己使用的比较少,今天我就带你具体来看看内部类. 内部类基础 所谓内部类就是在类的内部继续定义其他内部结构类. 在 ...

  6. Java内部类、外部类之间访问权限

    Java内部类.外部类之间访问权限 啥是内部类 内部类可以访问外部类的所有成员吗 那外部类能访问内部类的所有成员吗 匿名内部类 静态内部类呢 为啥会这样呢 得出结论 啥是内部类 顾名思义,内部类就是在 ...

  7. java内部类为什么会持有外部类的引用_为什么内部类持有外部类的引?

    对普通类(没有内部类的类)来说,内部类和外部类都与他无关:对有内部类的类来说,它们就是其内部类的外部类,外部类是个相对的说法,其实就是有内部类的类.所以,要回答这个问题,只需要讲解内部类是什么:Jav ...

  8. Scala 内部类及外部类

    转自:https://blog.csdn.net/yyywyr/article/details/50193767 Scala内部类是从属于外部类对象的. 1.代码如下 [java] view plai ...

  9. 内部类和外部类的详解

    一*相关概念: 当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使用内部类.内部类也是封装的一种体现. 1.1.内部类 ...

最新文章

  1. 线上java JVM问题排查
  2. pyplot绘图标题错误处理
  3. SpringBoot集成Redis实现排行榜
  4. 开放封闭原则(OCP)
  5. 14_pytorch.where,pytorch.gather
  6. Android ImageView图片自适应
  7. iOS 15泄密,屏下指纹的iPhone 13真的要来了
  8. 基于php程序系统设计,PHP程序静态分析系统的设计与实现
  9. Hive窗口函数(over/partition by/order by/window/序列函数)总结与实践
  10. QThread多线程编程分析
  11. 介词短语做后置定语(由of引导)
  12. 一次使用针式打印机打印异常问题的处理
  13. mkv格式提取文件方法
  14. JDK 安装教程——图文细讲
  15. 美国计算机专业工资排名,美国大学薪酬概况及毕业生薪资排名前50的学校
  16. mysql打开数据库命令_MySQL操作数据库指令
  17. 英语4级的分数如何计算机,英语四级的分数是怎么计算的?
  18. EXTJS动态载入组件定义文件并初始化组件,动态构造界面的方法.
  19. 数模【数据的拟合方法-总结】【温度与电阻的关系模型、农业生产实验模型、血药浓度模型、化工氯气生产等级模型、人口预测模型】
  20. Unity 使用混音器AudioMixer改变语速而不改变音色

热门文章

  1. asp.net2.0导出pdf文件完美解决方案(转载)
  2. [Android] AlertDialog获取网上天气并显示各城市天气
  3. HarmonyOS之深入解析设备标识符的功能和使用
  4. iOS之深入解析类加载的底层原理:分类如何加载到类以及分类和类的配合使用
  5. iOS逆向之深入解析MachO文件
  6. Java中三种交换值得方式
  7. html怎样做登录页面,使用HTML 5和CSS3制作登录页面完整步骤
  8. js reduce实现中间件_实现redux中间件-洋葱模型
  9. pandas python2.7_python-2.7 – Pandas Seaborn安装
  10. C代码+汇编 C的for汇编学习分析