C++知识的补充与说明

  • 不要将布尔变量与任何值进行比较,那会很容易出错的。
    整形变量必须要有类型相同的值进行比较
    浮点变量最好少比点,就算要比也要有值进行限制
    指针变量要和NULL进行比较,不要和布尔型和整形比较
  • const有数据类型,#define没有数据类型
    个别编译器中const可以进行调试,#define不可以进行调试
    在类中定义常量有两种方式
    1、 在类中声明常量,但不赋值,在构造函数初始化表中进行赋值;
    2、 用枚举代替const常量。
  • 关于sizeof,C++无法知道指针所指对象的大小,指针的大小永远为4字节
    char a[]=”Hello World!”
    char *p=a;
    count <<sizeof(a)<< end; //12字节
    count <<sizeof(p)<< endl; //4字节
    而且,在函数中,数组参数退化为指针,所以下面的内容永远输出为4
    void fun(char a[1000])
    {
    count sizeof(a) endl; //输出4而不是1000
    }
  • 关于指针
    1、 指针创建时必须被初始化
    2、 指针在free 或delete后必须置为NULL
    3、 指针的长度都为4字节
    4、释放内存时,如果是数组指针,必须要释放掉所有的内存,如
    char *p=new char[100];
    strcpy(p,”Hello World”);
    delete []p; //注意前面的[]号
    p=NULL;//置为NULL
  • 关于malloc/free 和new /delete
    malloc/free 是C/C++的内存分配符,new /delete是C++的内存分配符。
    注意:malloc/free是库函数,new/delete是运算符
    malloc/free不能执行构造函数与析构函数,而new/delete可以
    C++中可以使用set_new_hander函数来定义内存分配异常的处理
  • 重载:在同一类中,函数名相同的函数。由不同的参数决定调用那个函数。函数可要不可要Virtual关键字。
    和全局函数同名的函数不叫重载。如果在类中调用同名的全局函数,必须用全局引用符号::引用。
    覆盖是指派生类函数覆盖基类函数
    函数名相同,参数相同,基类函数必须有Virtual关键字,不同的范围(派生类和基类)。
    隐藏是指派生类屏蔽了基类的同名函数相同
    1、 函数名相同,但参数不同,此时不论基类有无Virtual关键字,基类函数将被隐藏。
    2、 函数名相同,参数也相同,但基类无Virtual关键字(有就是覆盖),基类函数将被隐藏。
  • Extern “C”是由C++提供的一个连接交换指定符号,用于告诉C++这段代码是C函数。这是因为C++编译后库中函数名会变
    得很长,与C生成的不一致,造成C++不能直接调用C函数,加上extren “c”后,C++就能直接调用C函数了。
    Extern “C”主要使用正规DLL函数的引用和导出 和 在C++包含C函数或C头文件时使用。使用时在前面加上extern “c” 关键字即
    可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值