• λ我爱Aspx >> Asp.Net >> 从C转入C++
  • 从C转入C++

  • :未知  Դ:internet  :2007-5-5 19:50:02  ؼ:
  • 从C转入C++

    C++是C的超集(C的扩展名一般为.CPP),在大都分时候,C程序可在C++编译器下运行,但有时会有问题,主要有以下几点:

    • 在C++中可用//表示该符号后面为注释,如:

      void main() //这是主函数

    • 在C中以可用以下标识符,但在C++中它们是关键字:
      asm bed_cast bad_typeid catch
      class const_cast delete dymanic_cast
      except finally friend inline
      namespace new operator private
      protected public reinterpret_cast static_cast
      template this throw try
      type_info typeid using virtual
      xalloc
    • 在C中,可在前面无声明和定义时,调用函数(虽会警告). 但在C++中,任何函数在调用前必须声明或定义.
    • 在C中声明函数时,可不带参数,如:

      int FuncA();//实际可能有几个参数

      而在C++中这仅能中明无参数的函数。

    • 在C中可用旧式的函数定义如:

      int FuncA(x,y)

      int x;

      int y;

      {

      ...

      }

      而在C++中这是不允许的.

    • 在C中可对任何指针赋void指针,下:

      int a;

      int *pint;

      void *pvoid=&a

      pint=pvoid; //C中可以,C++错

      C++会出错,因C++无法自动将Word指针变成另一指针类型,可显式转换

      pint=(int*)pvoid;

    • C中enum,srtuct,union可和同范围内的typedef名一致,而在C++由于可只用名称引用struct等结构,如:

      struct TypeA

      {

      ...

      };

      则可用 TypeA x;定义结构型变量x。

      固不能与typedef同名,否则编译器不清楚你到底想要定义什么。

    • 另sizeof()也有两个不同点:在C中sizeof('x'),在C中相当于sizeof(int),而在C++中相当于sizeof(char)。另如有枚举

      Ҷƪл˵?
    • һƪARP协议的安全缺陷
      һƪ高级程序员考试经验