1.3 C++对C的扩充

关键字的扩充

                    asm bool true false wchar_t namespace using class public 
                    protected private friend this inline virtual throw try catch
                    new delete explicit mutable export extern operator const
                    static template typename typeid
                    
                    asm  嵌入汇编代码
                    bool  true  false  bool类型只占一个字节
                    wchar_t  宽字符类型,至少16位。
                    
                    namespace  命名空间定义
                    using  从命名空间外部使用命名空间成员{
                        using namespace std;
                        using std::tou;
                    }
                    
                    class  public  protected  private  friend  this{
                        面向对象编程,类的抽象、封装、继承、多态。
                        类的抽象:定义类的数据成员和成员方法
                        类的封装:对类的成员进行操作保护
                        类的继承:类可以多继承和多重继承
                        类的多态:不同子类对象的相同方法实现不同
                        
                        构建函数:可以重载,不能显式调用。
                        析构函数:不能重载,可以显式调用。
                    }
                    inline  内联函数
                    virtual  创建虚函数
                    
                    throw  try  catch  异常处理
                    
                    new  delete  {这两是运算符效率比函数要高
                        new 与 malloc 功能类似,但是 new 会调用对象的构造函数。
                        delete 与 free 功能类似,但是 delete 会调用对象的析构函数。
                    }
                    explicit  清晰,明确,告诉编译器不要提供隐式转换
                    mutable  可变数据,不能与const同用
                    static 与类一起使用,静态成员,静态方法
                    const 与类一起使用,常对象,常对象引用,常对象指针
                    export  实现模板函数的外部调用
                    
                    extern {
                        extern "C" { C语言代码 }  嵌入C语言代码
                    }
                    
                    operator  重载运算符{
                        对()进行重载实现仿函数(Functor):或称函数对象
                        
                        不能被重载的运算符:., .*, ?:, ::, sizeof
                    }
                    template  定义模板函数、模板类。
                    typename  模板类型的类声明,可以用class代替
                    typeid  与sizeof运算符类似,它获得数据的类型
                    
                    dynamic_cast  const_cast  static_cast  reinterpret_cast  {类型转换运算符
                      static_cast<type-id>(expression);
                        将expression转换为type-id类型,运行时不做类型检查。
                        一、父类与子类之间的转换。
                            上行转换是安全的,下行转换没有动态类型检查是不安全的
                        二、基本数据类型转换
                        三、不同类型的空指针转换
                        四、任何类型的表达式转换为void类型
                      
                      reinterpret_cast<type-id>(expression)
                      
                      dynamic_cast<type-id>(expression)
                      
                      const_cast<type-id>(ecpression)
                        将const类型指针或引用转换为非const的
 

符合上的扩展

                    &  增加了引用功能
                    <<  >>  流的输入输出操作
                    :: 作用域运算符{
                        ::g ;  访问全局变量g 
                    }
                    

其它功能扩展

                    新增了函数重载。
                    新增内联函数和函数模板。(template<typename >)
                    命名空间。(Namespace)
                    异常处理,通过try, catch, throw 实现。
                    C/C++混合编程,用(extern "C")修饰。
                    类型转换更为严格{
                        c=(char)97; //C风格的强制类型转换运算符
                        c=char(97); //C++风格的强制类型转换运算符
                    }
                    函数可以设置默认参数{
                        void test(int a=1, int b=2, int c); //错误,参数默认值的指定只能从右向左连续进行
                    }
 

猜你喜欢

转载自blog.csdn.net/u013845608/article/details/85618592
1.3