C++学习笔记(二十八):c++ 箭头->运算符
2024-01-08 12:17:17
- c++中->运算符主要包含两种使用方式,一种是最为常用的用来调用类指针对象的属性和方法,另一种是c++运算符重载。代码示例如下:
-
#include <iostream> class Entity { public: void Print() const { std::cout << "Hello!" << std::endl; } }; class ScopeEntity { private: Entity* m_Obi; public: ScopeEntity(Entity* entity) :m_Obi(entity) {} ~ScopeEntity() { delete m_Obi; } Entity* operator-> () { return m_Obi; } const Entity* operator-> () const { return m_Obi; } }; int main() { //->操作符的使用方式1 const Entity* e1 = new Entity; e1->Print(); //->操作符的使用方式2,操作符重载 const ScopeEntity entity(new Entity); entity->Print(); std::cin.get(); return 0; }
-
箭头操作符在实际项目中一个简单的使用技巧:
-
#include <iostream> struct Vector3 { float x, y, z; }; int main() { //获取结构体Vector对象的每个属性的偏置 //将一个空指针强制类型转换成一个Vector3类型的指针,这样操作使得该Vector3类型的指针的内存地址从0开始 int index =(int) &((Vector3*)0)->y; std::cout << index << std::endl; std::cin.get(); return 0; }
文章来源:https://blog.csdn.net/qq_16701727/article/details/135450816
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!