社区
C++ 语言
帖子详情
C++ 嵌套类如何访问自己的this指针呢?
z888c
2009-11-11 03:37:16
class A
{
public:
class B
{
public:
void f()
{
this->XXX, //error
}
};
};
why ??????
...全文
377
14
打赏
收藏
C++ 嵌套类如何访问自己的this指针呢?
class A { public: class B { public: void f() { this->XXX, //error } }; }; why ??????
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
SammyLan
2009-11-11
打赏
举报
回复
1. 你B类里面都没有XXX
2. 原因看4楼
elpep
2009-11-11
打赏
举报
回复
[Quote=引用 4 楼 yshuise 的回复:]
class A
{
public:
class B
{
public:
int m;
void f()
{
this->m;//这儿应该是分号,而不是逗号。
}
};//写成了中文的分号了?反正不是英文状态的分号。应该写成英文的分号。
};
[/Quote]
应该是这样的
elpep
2009-11-11
打赏
举报
回复
[Quote=引用 8 楼 elpep 的回复:]
class B是Class A 的成员。
class A 没产生的时候,B自然没有,根本不能访问B的指针。
[/Quote]
看错了。上述说错了。sorry
z888c
2009-11-11
打赏
举报
回复
[Quote=引用 8 楼 elpep 的回复:]
class B是Class A 的成员。
class A 没产生的时候,B自然没有,根本不能访问B的指针。
[/Quote]
为什么我放到头文件里面实现就ok的呢????
z888c
2009-11-11
打赏
举报
回复
error: illegal implicit conversion from 'A::B' to
lovesi3344
2009-11-11
打赏
举报
回复
XXX 是什么??
elpep
2009-11-11
打赏
举报
回复
class B是Class A 的成员。
class A 没产生的时候,B自然没有,根本不能访问B的指针。
z888c
2009-11-11
打赏
举报
回复
[Quote=引用 3 楼 hai040 的回复:]
this就是B的吧
cout < < typeid(this).name()试试
[/Quote]
在头文件里面是可以的,但是我把它放到cpp文件里面
void A::B::f()
{
this->XXXX.......//不行
}
why ????
whg01
2009-11-11
打赏
举报
回复
首先得编译不出错。
xixiaoliu
2009-11-11
打赏
举报
回复
[Quote=引用 2 楼 z888c 的回复:]
我要得到B的this指针!!!!!!
[/Quote]
这个当然能做到。难道是 4 楼指出的问题?
yshuise
2009-11-11
打赏
举报
回复
class A
{
public:
class B
{
public:
int m;
void f()
{
this->m;
//这儿应该是分号,而不是逗号。
}
};
//写成了中文的分号了?反正不是英文状态的分号。应该写成英文的分号。
};
hai040
2009-11-11
打赏
举报
回复
this就是B的吧
cout << typeid(this).name()试试
z888c
2009-11-11
打赏
举报
回复
我要得到B的this指针!!!!!!
xixiaoliu
2009-11-11
打赏
举报
回复
B 只是定义在 A 内,但 B 的任何对象都跟 A 的任何对象没关系
所以在 B 中是没法获得 A 对象的 this 指针的
C++
命名空间与
嵌套
类
的应用与实践
本文探讨了
C++
中的命名空间和
嵌套
类
的概念、用途及其在解决实际编程问题中的优势。通过具体示例分析,理解如何利用命名空间解决全局命名冲突,以及
嵌套
类
如何在控制
类
可见性方面发挥作用。文章还涉及了this
指针
、静态成员、友元函数等高级特性,为读者提供了一个全面了解
C++
面向对象编程的视角。
从零开始学
C++
之
类
与对象:
类
声明、
类
作用域、前向声明、this
指针
、
嵌套
类
、PIMPL 技法 等
一、
类
声明 //
类
是一种用户自定义
类
型,声明形式: class
类
名称 { public: 公有成员(外部接口) private: 私有成员 protected: 保护成员 }; 在关键字public后面声明,它们是
类
与外部的接口,任何外部函数都可以
访问
公有
类
型数据和函数。
C++
this
指针
:从编译器原理到实战应用全解析
在
C++
面向对象编程中,成员函数如何区分不同对象实例是一个核心问题。其原理在于编译器在编译阶段对成员函数进行转换,通过添加隐藏参数——即this
指针
——来建立函数代码与对象数据的桥梁。这一机制不仅实现了对象自治,还支撑了const成员函数、链式调用等关键特性,对编写健壮、可维护的代码至关重要。在实际开发中,this
指针
常用于解决命名冲突、实现链式调用,并在异步编程、智能
指针
协同等场景中需要特别注意生命周期管理,以避免悬垂
指针
等问题。本文深入探讨了this
指针
的本质、用法及典型应用场景,帮助开发者透彻掌握这一
C++
this
指针
:从内存模型到多态实现的核心机制
在面向对象编程中,成员函数如何
访问
对象数据是一个基础问题。
C++
通过隐式传递this
指针
实现这一机制,它本质上是编译器自动插入的指向当前对象的常量
指针
。这一设计不仅解决了函数调用时的对象标识问题,更是实现封装、链式调用和多态的基础。从内存模型角度看,this提供了对象实例的基地址,成员
访问
通过基地址加偏移量实现,这使得同一份成员函数代码可以操作不同对象的数据。在工程实践中,this
指针
广泛应用于解决命名冲突、实现流畅的API链式调用,以及安全地传递对象引用。特别是在多态场景下,通过基
类
指针
调用虚函数时,th
C++
类
的介绍
本文介绍了
c++
类
的
嵌套
,
类
中私有数据如何
访问
,this
指针
等。
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章