C++分析研究  
C++
日历
<2013年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
统计
  • 随笔 - 92
  • 文章 - 4
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿

随笔档案

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 
  一、声明(declaration):用于向程序表明变量的类型和名字,是用来将一个object、function、class或template的类型和名字告诉编译器。由2部分组成:类型 + 标示符,标示符可以包含字符*、[ ]和(),表明这个名称是类型的指针、数组或者返回类型的函数职称英语代考 职称英语答案

  声明并不带有细节信息;

  定义也是一种声明;

  extern关键字可用来声明变量而不定义,只是说明变量定义在程序的其他地方;

  变量可以声明多次,但只能定义一次

  例子:

  char *pc; // 类型是pc,标示符是*pc,表明*pc是一个char.

  extern float x;  // 对象声明

  int func(double num); //函数声明

  class Person; //类声明

  template<class T>

  class SmartPointer; //模板声明雅思答案 雅思代考

  解读复杂声明的一种方法,遵循"声明模仿使用"的原则逐步分解声明。

  例如:char * (*pfpc)();

  * (*pfpc)(); // 是一个char

  (*pfpc)();    // 是一个指向char的指针

  (*pfpc);       // 是一个返回char类型指针的函数

  pfpc;           // 是一个指向返回char类型指针的函数的指针

  二、定义(definition):是用来将细节信息提供给编译器。

  对于object而言,定义是编译器为它分配内存空间托福代考 托福答案

  对于function或funciton template而言,定义是提供函数体;

  对于class或class template而言,定义是列出该class或template的所有成员;

  例子:

  float x; //对象定义

  //函数定义

  int func(double num) {

  int t = static_cast<int>(num);

  return t;

  }

  //类定义

  class Person {

  public:

  Person();

  ~Person();

  String getName() const;

  void setName(String name);

  …

  };

  //模板定义

  template<class T>

  class SmartPointer {

  public:

  SmartPointer(T *p = 0);

  ~SmartPointer();

  T * operator->() const;

  T& operator*() const;

  …

  };

  备注:如果声明中有初始化,那么它其实是定义。

  例如: externdouble pi = 0;

  此时pi是定义,所以如果这样用的话会出错:

  extern double pi = 0;

  extern double pi = 1; // 2个extern且初始化

posted on 2013-03-08 21:35 HAOSOLA 阅读(517) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © HAOSOLA Powered by: 博客园 模板提供:沪江博客
PK10开奖 PK10开奖