c++基础

打印 上一主题 下一主题

主题 878|帖子 878|积分 2634

多文件结构和编译预处置惩罚命令

C++程序的一般组织结构

•一个源程序可以划分为多个源文件:

  • 类声明文件(.h文件)
  • 类实现文件(.cpp文件)
  • 类的使用文件(main()所在的.cpp文件)
外部变量

•在全部类之外声明的函数(也就是非成员函数),都是具有文件作用域的。
•如许的函数都可以在差别的编译单位中被调用,只要在调用之进步行引用性声明(即声明函数原型)即可。也可以在声明函数原型或界说函数时用extern修饰,其结果与不加修饰的缺省状态是一样的。
namespace

•使用匿名的命名空间:在匿名命名空间中界说的变量和函数,都不会袒露给其它的编译单位。
  1.   **namespace** { //匿名的命名空间
  2. int n;
  3. void f() {
  4. n++;
  5. }
  6.   }
复制代码
•这里被“namespace { …… }”括起的区域都属于匿名的命名空间。
访问权限


  • public:全部
  • private:本类,友元
  • protected:本类,派生类,友元
重载


  • 重载函数参数要差别(类型,个数或者顺序差别)
内联函数


  • 为了提高运行效率
  • 不要有复杂的结构(循环,swich语句)
  • 将函数体放在类的声明中
  • 使用inline关键字
  • 类结构中所在的类说明内部界说的函数是内联函数。
带默认参数的函数


  • 类中声明的时候带默认参数,具体实现的时候不带
构造函数


  • 函数名和类名完全相同
  • 不写构造函数时,体系会默认给一个无参的默认构造函数
  • 个数大于等于一个
析构函数


  • 对象销毁时被调用
  • 不能重载,有且只有一个

委托构造函数


  • C++11 引入

复制(拷贝)构造函数

[code]#include using namespace std;class Point {        //Point 类的界说public:                //外部接口        Point(int xx = 0, int yy = 0) {        //构造函数                x = xx;                y = yy;        }        Point(const Point &p);        //拷贝构造函数        int getX() {                return x;        }        int getY() {                return y;        }private:        //私有数据        int x, y;};//成员函数的实现Point:oint(const Point &p) {        x = p.x;        y = p.y;        cout
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表