zoukankan      html  css  js  c++  java
  • c++增强c

    1. 编写第一个helloworld程序

     1. 新建一个工程,编写如下代码

    #include "pch.h"    
    #include <iostream>        // 标准输入输出流
    using namespace std;    // 使用命名空间std
    
    int main() {
        cout << "helloworld" << endl;    // 标准的输出
        system("pause");    // 阻塞功能
        return EXIT_SUCCESS;    // 返回正常的推出
    }

    count是C++标准的输出流,endl是输出换行并且刷新缓冲区

    <<:可以拼接基本的数据类型,string ,int char等

    2. 双冒号作用域运算符

    局部变量与全局变量:就近原则

    int atk = 200;
    void test() {
        int atk = 100;
        cout << "当前的atk为" << atk;
        // :: 代表全局的作用域,本身是全局运算符
        cout << "全局的atk为" << ::atk;
    }
    
    int main() {
        test();
    }

    3. 命名空间的使用

    (1). 命名空间:可以放函数,变量,结构体,类
    (2). 命名空间必须定义在全局作用域下面
    (3). 命名空间可以嵌套命名空间
    (4). 命名空间是开放的,可以随时向以前的命名空间中添加内容
    (5). 匿名命名空间,当写了无名命名空间,相当于内容前添加了static
    (6). 命名空间可以取别名

    namespace ns {
        int a = 0;
        void function();
        struct MyStruct
        {
    
        };
        class Animal {};
        namespace nc {
            int a = 20;
        }
    }
    // 此命名空间会与上面的命名空间合并,不能定义重复的内容
    namespace ns {
        int b = 0;
    }
    
    namespace {
        int mc = 0;
        int md = 0;
    }
    
    namespace longname {
        int me = 20;
    }
    
    void namespacetest() {
        // 命名空间的主要用途是解决命名冲突的问题
        first::atk();
        second::atk();
        cout << ns::nc::a << endl;
        cout << ns::a << endl;
        mc = 20;
        cout << mc << endl;
        namespace shortname = longname;
        cout << shortname::me << endl;
    }
    
    int main() {
        namespacetest();
    }

     4. using 声明和using 编译指令

    此时如果继续引入一个命名空间it

    2. 面向对象编程:万物皆对象

    三大特性:

    1. 封装

    2. 继承

    3. 多态:一个接口,多种方法

    3. C++对C语言的增强

    1. 全局变量检测增强

    上面代码作为局部变量都不能通过

    2. 函数检测增强:参数类型检测增强,返回值检测增强,函数调用参数检测增强

     3. 类型转换检测增强

    4. struct结构体增强

    C++调用这个结构体:advance ad;可以不加struct 关键字

    C调用这个结构体:struct advance ad:必须要有struct 关键字

    5. bool类型增强

    6. 三目运算符增强

     7. const增强

    a. c语言的伪常量和c++真正的常量

     b. c语言中的const 默认外部链接,c++默认内部链接

    c. const分配内存情况

    (1). a中取地址会分配临时内存

    (2). b中extern 引用外部const变量时

    (3). 使用普通变量初始化const变量,

    d. 自定义数据类型

     e. 尽量使用const 代替 #define

    a. const有类型,可以通过编译器类型安全检查,define无类型,不可以进行类型检查

    b. const有作用域,#define不重视作用域,默认定义到文件的结尾

    8. 引用(reference):起别名

    引用是c++对c的一个重要补充,在c/C++ 的指针的作用基本是一样的,但是c++增加了另外一种给函数传递地址的途径,这就是按照引用传递(pass-by-reference),它也存在于其它的一些编程语言中,不是c++ 的发明。

     注意事项:

    a. 引用必须是一块合法的内存空间

    b. 不要返回局部变量的引用

    但是局部变量是静态变量时候,可以返回引用,同时这个函数调用可以作为左值使用

    引用的本质在C++内部的实现是一个指针常量

    9. 参数的传递方式

    a. 值传递:不想改变以前的值

    b. 地址传递

     10. 指针的引用

    12. 常量的引用

    c++网站:http://www.cplusplus.com/reference/cstring/

  • 相关阅读:
    pom变成红橙色
    拉链表
    Newsgroups数据集研究
    python 安装第三方包
    概率图(三)CRF条件随机场
    概率图(二)马尔科夫随机场MRF
    LDA主题模型
    TF-IDF算法
    mysql 自定义排序顺序
    [转]解决a different object with the same identifier value was already associated with the session错误
  • 原文地址:https://www.cnblogs.com/feng-ying/p/10020446.html
Copyright © 2011-2022 走看看