C++内部类访问外部类

C++中的内部类(Nested Class) 内部类是定义在另一个类的作用域内的类。它可以访问外部类的私有成员,但它本身的成员和方法不能直接访问外部类的成员,除非通过外部类的实例。public:class Inner { // 定义内部类public:// 创建外部类对象// 创建内部类对象// 访问外部类的数据return 0;内部类是C++提供的一种将类嵌套在另一个类中的机制。通过内部类,可以提高代码的封装性和组织性,将类的细节隐藏在外部类中,从而避免不必要的暴露。 阅读详情

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

// 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++);
}
 

.NET适配HarmonyOS进展 1. 前言 目前国产化系统浪潮下,适配鸿蒙是中国软件大势所趋,.NET作为最适合开发客户端语言之一,适配鸿蒙系统(HarmonyOS Next)是目前.NET开发者最关心的事情。我目前业余时间正在移植Avalonia到HarmonyOS,去年在.NET Conf CN上分享过,目前又取得一点进展,所以本文把所有问题进行整合与大家进行分享。 阅读详情

相关推荐

LPDDR5时序精调:深入解析Read Gate Training的两种模式

本文深入解析了LPDDR5内存中关键的Read Gate Training技术,详细对比了RDQS Toggle Mode(翻转模式)与Enhanced RDQS Mode(增强模式)的工作原理、时序参数及适用场景。文章阐述了在高速数据传输下精准校准时序的必要性,并提供了两种模式的实战选型指南与系统级调试思路,帮助工程师优化内存性能与稳定性。

weixin_29219189的博客 368

C++ 实现内部类访问外部类

C++内部类的实现: class outclass { public: int m; class inclass//内部类通过parent指针访问外部类的成员,包括public、private { public: void set_m(int i) { outclass *parent = (outclass *) ((char*)this - offse

codestinity fight for 1万+

AD20/Altium designer——如何进行DRC检查、冲突的错误如何改正

对于一个画完的PCB,我们常常需要进行DRC检查,确保板子的电器连接及制作工艺在设定规则的范围内,本篇将介绍如何对PCB进行后期DRC检查处理,确保电路板出现不必要错误。 1.DRC检查入口 2.DRC设置 3.错误分析 对于错误的内容,依据个人实际情况不同,其出现的原因都是因为与设计规则中的设定标准冲突,这里按遇到的错误进行修改讲解,其他错误同理。 4.常见错误分析及解决方法 (1) 解决方法:将未连接网络连接(...

嵌入式创客工坊的博客 5万+

C++嵌套类的使用及对外部类的访问权限

C++中的嵌套类与Java中的静态内部类类似,而完全不同于非静态内部类(成员内部类)。 http://www.cnblogs.com/qzhforthelife/archive/2013/07/31/3226885.html C++之内部类与外部类(嵌套类)及友元 本人能力、精力有限,所言所感都基于自身的实践和有限的阅读、查阅,如有错误,欢迎拍砖,敬请赐教

多学多思 1万+

智能环境感知:STM32多传感器数据融合与报警策略设计

本文详细介绍了基于STM32的多传感器数据融合系统设计,整合DHT11温湿度传感器、MQ-2烟雾检测和光照强度检测模块,通过智能算法实现环境感知与动态报警。系统采用数据滤波、多传感器校验和自适应阈值策略,显著提升监测精度与可靠性,并通过OLED显示屏提供清晰的多级报警界面。

plant的博客 202

手机拍视频就能训练机器人?SpatialLM开源模型实战指南(附HuggingFace部署教程)

本文详细介绍了如何利用开源模型SpatialLM通过手机视频训练机器人理解3D空间结构。从HuggingFace部署、视频预处理到模型推理和结果可视化,提供完整的实战指南,特别适合具身智能领域的开发者快速上手。

2y3u4i5o6p的博客 790

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

目 录 1.内部类与外部类 2.内部类的特点:内部类可以直接访问外部类的成员(成员变量和成员方法),包括私有成员。 3.内部类与外部类之间的访问 在测试类中调用成员内部类中的方法: 外部类访问成员内部类中的成员: 静态的成员内部类,只能访问外部类的静态成员 私有的成员内部类,外界就无法直接创建其对象,可以通过外部类的方法访问 局部内部类,在外界没有直接创建其对象的语法 局部内部类访问外部类的局部变量: 1.内部类与外部类 将一个类A 定义到另一个类B的内部,...

naoguoteng的博客 1万+

SAP子公司财务账套配置实战:从公司代码到记账期间变式的关键步骤

本文详细介绍了为SAP子公司快速配置财务账套的实战步骤。通过复用母公司成熟配置,重点阐述了从创建公司代码、关联控制范围到分配记账期间变式的核心流程,帮助顾问在一两个小时内完成核心骨架搭建,实现高效集团财务管控。

cake8的博客 166

C++内部类和外部类的互相访问(d指针和q指针)

d指针和q指针式Qt中常见的封装方法,由此引出了C++内部类和外部类的互相访问。 其实也是Pimpl(pointer to implementation, 指向实现的指针)方法。 实验代码: Inner类为Outter类的私有内部类。Inner类中有一个public字符串变量In,Outter类中有一个private字符串变量Out。通过Outter类中的d指针访问Inner类,实现对In的读写;...

随便写写 3657

江科大笔记—OLED调试工具

OLED介绍及调试工具

m0_62005595的博客 658

【unity游戏开发入门到精通——通用篇】Post Processing 后处理插件Post-process Volume 和 Volume最全基础使用说明

之前我已经实现了不少后处理功能,本文其实就是将他们归类整理,以便更好的查找和理解。在Unity中,后处理(Post-Processing)是在相机所捕捉的图像上应用一些特殊效果的过程,后处理会让图像视觉效果更好(前提是做的好)。这些效果的范围有非常细微的颜色调整,也包括整体的美术风格的大修,可以让场景看起来更加真实或风格化,或者只是变得更好看。就像我们都会用手机拍照,但很多时候我们拍的原始的相片都打不到我们想要的效果。比如照片可能亮度不够,颜色不饱和或者对比度不好等。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 7897

C++继承vector并重载operator[] 内部类访问外部类操作

C++继承vector并重载operator[] 内部类访问外部类操作 const int num = 10; template<typename Type> class myVector :public std::vector<Type> { public: Type& operator[](const int i); }; template<typename Type> Type &myVector<Type>::oper

qq_42716357的博客 1262

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 206

C++中内部类访问外部类的私有成员

首先,如果不知道什么是内部类InnerClass的话,就没必要往下看了。 尝试在C++中模仿apple objective-c 的Grand Dispatch简化多线程编程时,使用了boost::function,线程池,和内部类技术,需要在内部类访问外部类的私有成员,由于标准的C++不允许这么做,内部类只能访问外部类的公有成员,为了完成设计,只好将外部类的所有成员定义成public。 在C+...

weixin_33720956的博客 1285

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【C++指南】类和对象(九):内部类

在 C++ 编程中,内部类(也称为嵌套类)是一个定义在另一个类作用域内的类。 内部类提供了一种封装和逻辑分组的方式,使得代码更加模块化和易于管理。 本文将详细介绍 C++ 中内部类的定义、使用场景、访问权限及其与外围类(外部类)的相互作用。

倔强的石头的博客 5998

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C++ 内部类

c++ 内部类有访问外部类的静态成员的权限,但是内部类没有外部类的指针,所以只能通过传递外部类对象给内部类,才能访问外部类对象的非静态公有成员。 转载于:https://www.cnblogs.com/handongdong/archive/2011/11/04/2235957.html...

weixin_30809333的博客 60

C++初阶语法——内部类

如果一个类定义在另一个类的内部,这个类就叫做内部类。但是内部类是一个独立的类,它不属于外部的类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。

qq_73390155的博客 545

C++笔记之外部类访问内部类的私有成员

如下图所示 内部类可以访问外部类的私有成员 而外部类无法访问内部类的私有成员 为了能让外部类访问内部类的私有成员,将外部类声明为内部类的友元类即可 #include <iostream> using namespace std; class Outer { public: class Inner { friend cl...

weixin_33908217的博客 812

java 有元类_C++之内部类与外部类(嵌套类)及友元

先上代码:class Outer{public:Outer(){m_outerInt=;}private:int m_outerInt;public://内部类定义开始class Inner{public:Inner(){m_innerInt=;}private:int m_innerInt;public:void DisplayIn(){cout<} ;//End内部类public:voi...

weixin_30550287的博客 249

C++之内部类(嵌套类)与外部类及友元

本人能力、精力有限,所言所感都基于自身的实践和有限的阅读、查阅,如有错误,欢迎拍砖,敬请赐教——博客园:钱智慧。 先上代码: 1 class Outer 2 { 3 public: 4 Outer(){m_outerInt=0;} 5 private: 6 int m_outerInt; 7 public: 8 //内部类定义开始 ...

weixin_34335458的博客 312

C++基础#25:C++中的嵌套类(内部类)和外部类

C++中,允许在一个类中定义另外一个类,在类中定义的类称为嵌套类(或内部类),定义嵌套类的类被称为外部类。对类嵌套往往为了帮助实现另一个类,并避免名称冲突。有了嵌套类,在使作用域规则更加规范的同时,又增强了类中信息局部化的能力。嵌套类是一个独立的类,和外层类基本没什么关系。

记录和分享程序人生的点点滴滴 4936

c++-内部类

【代码】c++-内部类。

2302_80221042的博客 277

C++程序员应了解的那些事(66)内部类(嵌套类)/ 内部typedef

内部类: 内部类就像这个类的一个成员函数,所以内部类有权访问外部类内容(包括private内容)。但是内部类就相当于在一个作用域内定义了一个类,这个作用域内的其他变量是无权访问这个类的(私有成员)。//即对外部类而言,对内部类的访问权限 就像一个普通类 class Out{ public : void Fun () { nested object; // 这一行编译通过 object.b_ = 1; // 这一行编译不通过! int Out:...

qfturauyls的博客 1352

C++:内部类

内部类是定义在另一个类内部的类,它不属于外部类,且外部类无法直接访问内部类的对象。内部类类似于特殊的友元类,但外部类并非内部类的友元类。内部类可以在外部类的任何位置定义,并可以直接访问外部类中的静态成员,无需通过外部类对象或类名。外部类的大小与内部类无关。内部类受外部类的访问限定符和类域的限制,若内部类定义在外部类的公有部分,可通过外部类::内部类的方式访问;若定义在私有部分,则需通过外部类的函数间接访问。

2301_79235626的博客 205
上一篇: AbstractListView源码分析9
下一篇: 迭代器模式C++实现
珠峰之巅-程序员
博客等级 码龄12年 24粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值