C++自学笔记 01

  1. C++是C的超集,支持面向过程编程、面向对象编程和泛型编程
  2. 面向对象三大特性:封装、继承、多态
  3. 双冒号作用域,::var用于访问全局变量的值
  4. 命名空间可以嵌套
namespace A
{
    int a = 10;
    namespace B
    {
        int a = 20;
    }
}

void test()
{
    cout << A::B::a;
    cout << A::a;
}
  1. 匿名命名空间:相当于写了static内容,只能在当前文件内使用
  2. 命名空间可以取别名:namespace B = A;
  3. C++对C的增强
  • 全局变量检测增强
int a;
int a = 1;
//在C中可以编译,在C++中无法编译
  • 函数检测增强(参数类型、返回值、参数数量)
  • 类型转换增强(C++必须强制转换)
  • struct增强(可以包含函数)
struct Person
{
    int age;
    int addAge()
    {
        age++;
    }
};

int main() {
    Person person;
    person.age = 10;
    person.addAge();
    cout << person.age;
    return EXIT_SUCCESS;
}
  • bool类型:true(非零的值都会转成1)/false
  • 三元运算符增强:返回值是变量(C中返回的是数值)
int main() 
{
    int a = 10;
    int b = 20;
    cout << (a > b ? a : b )<< endl;
    a > b ? a : b = 100;
    cout << b << endl;//100

    return EXIT_SUCCESS;
}
  • const增强
void fun()
{
    const int m_A = 20;
    int *p = &m_A; 
    *p = 200;//C中*p和m_A都为200,C++中*p=200,m_A=20
    int a[m_A];//C中不合法,m_A为伪常量;C++中合法
}

函数内const修饰,C中是伪常量,C++为符号表


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,742评论 1 51
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,330评论 0 38
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,812评论 1 32
  • C++入门基础 namespace专题讲座 namespace概念 所谓namespace,是指标识符的各种可见范...
    蔡俊宇阅读 894评论 0 2
  • 重新系统学习下C++;但是还是少了好多知识点;socket;unix;stl;boost等; C++ 教程 | 菜...
    kakukeme阅读 20,538评论 0 50

友情链接更多精彩内容