C++:箭头操作符

指针

重载

获取成员偏移量

#include 
#include 

//箭头操作符 ->
//指针
//重载
//获取成员偏移量
class Entity
{
public:
    int x;
public:
    void Print()const{
        std::cout<<"Hello!"<()//重载箭头操作符
//    {
//        return m_Obj;
//    }
};

struct Vector3
{
    float x,y,z;//找变量在内存的位置

};

int main()
{
    //指针
    Entity e;
    e.Print();
    //如果对象是一个指针
    Entity* ptr=&e;

    //指针的解引用(逆向) 两种方法
    (*ptr).Print();//1
    Entity& entity=*ptr;  //2
    entity.Print();
    //等价于
    ptr->Print();
    ptr->x=2;
    
    //重载
    ScopedPtr e2=new Entity();//想要ScopedPtr的m_Obj去调用Print 要么把private改为public
//    Entity* a=e2.m_Obj;//改public
//    a->Print();
    //或者重载箭头操作符
    //e2->Print();
    
    
    //获取成员偏移量
    //&((Vector3*)0)地址从0开始
    int offset=(int64_t)&((Vector3*)0)->x;
    int offset2=(int64_t)&((Vector3*)0)->y;
    int offset3=(int64_t)&((Vector3*)0)->z;
    std::cout<

你可能感兴趣的:(c++,开发语言,算法)