Page_Load基类,重写OnLoad


        protected override void OnLoad(EventArgs e)
        {
            userid = PublicFun.GetSessionValue(HttpContext.Current.Session, "member_id", 0);//前台用户
            if (userid == 0)
            {
                userid = PublicFun.GetCookieValue("UserID", 0);
                if (userid > 0)
                {
                    usertype = 1; //后台用户
                }
                else
                {
                    Response.Write("很抱歉,请您先登录再进行访问!");
                    Response.End();
                }
            }

            base.OnLoad(e);
        }

`shared_ptr` 是 C++ 中的一种智能指针,它提供了自动的内存管理功能,可以在多个指针之间共享同一个对象的所有权。当一个 `shared_ptr` 基类指针指向一个子类对象时,这种方式被称为多态。 在 C++ 中,当你有一个基类指针指向一个派生类对象时,基类指针可以使用多态性质调用派生类的方法。这是因为基类指针实际存储的是派生类对象的地址,通过基类的接口调用时,会根据实际的对象类型(即派生类)来调用相应的方法。但是,直接使用基类指针时,只能调用基类中定义的接口。 然而,当基类指针升级为 `shared_ptr<基类>` 类型后,情况就不同了。`shared_ptr` 能够利用多态性来引用派生类对象,且在调用虚函数时,会正确地解析到派生类中的实现,而不是基类的版本。这归功于 `shared_ptr` 内部维护的引用计数机制,它确保即使在多态情况下,对象的生命周期也能得到正确的管理。 为了实现这一点,你需要确保基类中至少有一个虚函数,通常是虚析构函数。这样,当通过基类指针删除对象时,会调用正确的析构函数,即派生类的析构函数。 例如: ```cpp class Base { public: virtual ~Base() {} // 虚析构函数以支持多态性 }; class Derived : public Base { public: void doSomething() override { // 特定于 Derived 的实现 } }; int main() { std::shared_ptr<Base> basePtr = std::make_shared<Derived>(); // 创建一个 Derived 类型的对象 basePtr->doSomething(); // 调用 Derived 类中重写的 doSomething 方法 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值