zoukankan      html  css  js  c++  java
  • C++、、

    1)C++面向对象的三大特征:多态、继承、封装;

    2)头文件中 ifndef/define/endif 的作用是:防止头文件的重复包含和编译;

    3)可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同:

         静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量;
         栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分               配的内存容量有限:
         堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决                  定,如果我们不释放内存,程序将在最后才释放掉动态内存。

    4)struct 和 class 的区别:class中变量默认是private,struct中的变量默认是public。struct可以有构造函数、析构函数,之间也可以继承等等。C++中的struct其实和class      意义一样,唯一的不同是struct默认的访问控制是public,而class中默认的访问控制是private。

    5)关键字 static 的作用:C语言中:

       1.在函数体内static变量的作用范围为该函数体,并且该变量的内存只能分配一次,其值下次调用时仍维持上次的值;

       2.在模块内static全局变量可以被模块内的所有函数访问,但不能内模块外其他函数访问;

       3.模块内的static函数只可被这一模块的其他函数调用,这个函数的使用范围被限制在声明它的模块内;

       4.在类中的static成员变量属于整个类所有,对类的所有对象只有 一份拷贝;

       5.在类中static成员函数属于整个类所有,这个函数不接收this指针,因此只能访问类的static成员变量。

    6)在C++程序中调用被C编译器编译后的函数,为什么要加 extern “C”?

        C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为 void fun(int x,int y),该函数被C编译器编译后在库中的名字为_fun,而C++编译器则会产生像_fun_int_int之类的名字。

       所以C++提供了C连接交换指定符号extern "C"解决名字匹配问题。

  • 相关阅读:
    GitHub 集成在Windows Azure Web Site中
    WebMatrix 2发布了!添加了新的Windows Azure 功能
    客户文章: 10gen和微软合作伙伴在云端提供NoSql数据库
    VC++实现IP与ARP信息获取,可以同理实现APR攻击
    现实世界中的 Windows Azure: 刚刚起步的LiquidSpace借助Windows Azure快速发展
    VC++实现遍历所有进程的TCP与UDP链接
    Node.js 体验存储服务和服务运行时
    客户文章:Windows Azure SendGrid入门
    2005年大学毕业生的求职新战略
    WinAPI: RoundRect 绘制圆角矩形
  • 原文地址:https://www.cnblogs.com/jx-yangbo/p/4872918.html
Copyright © 2011-2022 走看看