• C++


    1.“ ”和endl的区别?

    std::endl 输出一个换行符,并立即刷新缓冲区。

    对于有输出缓冲的流(例如cout、clog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。

    对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用 ' '。

    2. auto和decltype

    3.类

    class是 C++ 中新增的关键字,专门用来定义类。类名的首字母一般大写

    public也是 C++ 的新增关键字,它只能用在类的定义中

     类只是一个模板(Template),编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。只有在创建对象以后才会给成员变量分配内存,这个时候就可以赋值了。

    Student *pStu = &stu;

    Student *pStu = new stu;

    在栈上创建出来的对象都有一个名字,比如 stu,使用指针指向它不是必须的。但是通过 new 创建出来的对象就不一样了,它在堆上分配内存,没有名字,只能得到一个指向它的指针,所以必须使用一个指针变量来接收这个指针,否则以后再也无法找到这个对象了,更没有办法使用它。

    栈内存是程序自动管理的,不能使用 delete 删除在栈上创建的对象;堆内存由程序员管理,对象使用完毕后可以通过 delete 删除。在实际开发中,new 和 delete 往往成对出现,以保证及时删除不再使用的对象,防止无用内存堆积。

     有关内存的讲解:http://c.biancheng.net/cpp/u/c20/

    4.const

    C++ 对 const 的处理少了读取内存的过程

    const int m = 10;
    int n = m;
    

    在C语言中,编译器会先到 m 所在的内存取出一份数据,再将这份数据赋给 n;而在C++中,编译器会直接将 10 赋给 m,没有读取内存的过程。

    5.struct和class的区别

    class中默认成员访问权限是private,而struct的默认访问权限是public

    class中默认继承方式是private,而struct的默认继承方式是public

    struct更适合看成是一个数据结构的实现体,class更适合看成是一个对象的实现体。

    6. C和C++的区别

    c语言编程单位是函数,语句是程序的基本单元。而C++语言的编程单位是类。

    7.进程和线程的区别

    进程是资源分配的最小单位,线程是程序执行的最小单位。

    一个进程中可以包括多个线程,一个进程至少包括一个线程。

    进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程的结束

    进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。

    线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。

    但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

    8.类型转换

    • static_cast:静态转换。用于两个相关类型的转换。基本数据类型转换,enum,struct,int,char,float等,常用。
    • reinterpret_cast:用于不同类型的指针之间的转换,或者指针和整数之间的转换。
    • const_cast:仅去除const ,一般用不上。
    • dynamic_cast:动态转换。用于多态类型的转换。
  • 相关阅读:
    用Eclipse+MyEclipse开发struts的一个经典的实例(转)
    TOMCAT配置虚拟目录
    翻动100万级的数据(自定义的MSSQL分页查询过程)
    MyEclipse Hibernate 快速入门中文版
    微软提供的数据访问组件SqlHelper
    Java内存管理(一、内存分配)
    使用commonlogging与log4j打印日志,发现版本冲突
    Java内存管理(二、Java垃圾回收)
    初探java内存机制_堆和栈
    关于单CPU,多CPU上的原子操作
  • 原文地址:https://www.cnblogs.com/tomatokely/p/8708729.html
Copyright © 2020-2023  润新知