C++11

#if 1
class A
{
public:
    A()=default;//A() {}跟默认的类似但是可以修改
    A(consg A& that)=delete;
    int m_a   {20};//大括号赋值
};
auto add(int a,int b)->int
{
    return a+b;
}
class B
{
public:
        B(int a,int b,int c):m_a(a),m_b(b),m_c(c){}
        B():B(10,20,30){}
        B(int a):B(a,40,50){}
        void print()
    {
        cout<<m_a<<" "<<m_b<<" "<<m_c<<" "<<end;
    }
private:
     int m_a;
     int m_b;
     int m_c;
};
class C
{
public:
    virtual void foo(int)
    {
        cout<<"C::foo"<<endl;
    }
    virtual void barr()final 
    {
     
    }
};
class D:public C
{
public:
    virtual void foo(double) override
    {
        cout<<"D::foo"<<endl;
    }
     void barr()
    {
     
    }
};
class E final{};
class F:public E{};
int main()
{
    //新增类型
    long long 11_num=10;
    cout<<sizeof 11_num<<endl;
    unsing long long u11_num;
    char16_t c16;
    cout<<sizeof c16<<endl;
    char32_t c32;
    cout<<sizeof c32<<endl;
    //2 nullptr空指针   NULL是0 不符合逻辑
    int *p=nullptr;
    cout<<p<<endl;
    //3 类型别名
    using dtype =int;
    dtype dt=20;
    cout<<typeid(dt).name()<<""<<dt<<endl;
    //4 auto类型修饰符
    auto ai=10;
    cout<<typeid(ai).name()<<""<<ai<<endl;
    auto as="你好";
    cout<<typeid(as).name()<<""<<as<<endl;
    //5 类内初始化
    A a;
    cout<<a.m_a<<endl;
    int num{10};//大括号代替等号
    cout<<num<<endl;
    int arr[]{1,2,3,4,5};
    for(int i=0;i<5;++i)
    cout<<arr[i]<<endl;
    //6 范围for循环
    for(auto i:arr)
    {
        cout<<i<<" ";
    }
    cout<<"\n";
    //7 返回类型后置
    cout<<add(3,4)<<endl;
    //8 默认函数
    //9已删除函数
    //10委托构造函数
    B b;
    b.print();
    B b1(20);
    b.print();
    //右值引用
    int num=10;
    int &lnum=num;//左值引用
    int &&rnum=10;//右值引用
    //用处   运动语义
    B b2=b;
    //C++11  运动构造 移动数据 直接把b的数据移动到b2 b里面就没有了
    //12 lambda表达式
    auto sum=[](int a,int b){return a+b;}
    cout<<sum(1,3)<<endl;
    //智能指针  类做成指针功能不需要释放 会析构
    int *ptr=new int(1);
    delete ptr;
    //unique_ptr
    //shared_ptr
    //14 override   确保成功覆盖
    C *pc=new D;
    pc->foo(2.3);
    //15 final
    //类被final修饰        不能被继承
    //虚函数被final修饰   不能重载
return 0;
}
#endif

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值