zoukankan      html  css  js  c++  java
  • C++中的头文件(.h)和源文件(.cpp)都应该写什么?

    头文件(.h):写定义和声明
    写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但是一般来说不写具体的实现。
    注意:

    1、在写头文件的时候需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下):

    #ifndef PERSON_H
    #define PERSON_H

    //中间写你的代码

    #endif

    这样做是为了防止重复编译,不这样做就有可能会出错。
    至于PERSON_H这个名字可以随便取,只要符合规范就行,但是建议把它写成与源文件的名字对应。

    源文件(.cpp):写实现
    源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及你需要用到的头文件。那么当你需要用到自己写的头文件中类时,只需要#include进来就行了。
    注意:
    1、在.h文件中定义了类的属性,在.cpp文件中就不要重复定义,否则链接的时候会报错
    2、很多人都是先学的C,所以在包含头文件的时候喜欢用<>,例如#include <iostream>,但是在包含自己写的头文件的时候一定要用"",否则可能会报错:No such file or directory

    下面举一个简单的例子:
    第一步,建立一个空工程(以在Visual C++ 6.0)环境下为例
      点击菜单栏的file - > 选择new(新建) -> 选择project(工程)目录下的Win32 Console Application选项 -> 在右侧输入工程名和存储的位置,下一步 -> 选择“一个 空工        程”,点击完成

    第二步,新建头文件Person.h,它的内容如下:

     1 #ifndef PERSON_H
     2 #define PERSON_H
     3 class Person
     4 {
     5 public:
     6     int age;
     7     char* name;
     8     char* sex;
     9 public:
    10     Person();    //构造函数
    11     void say();
    12 };
    13 #endif

    第三步,要给出Person类的具体实现,因此,新建源文件Person.cpp,它的内容如下:

     1 #include <iostream>
     2 #include "Person.h"
     3 
     4 using namespace std;
     5 
     6 Person::Person()
     7 {
     8     cout << "创建了一个新的对象!" << endl;
     9 }
    10 
    11 void Person::say()
    12 {
    13     cout << "大家好,我叫" << name << ",性别" << sex << ",今年" << age << "岁." << endl;
    14 }

    注意:此处需要将头文件Person.h包含进来。

    最后我们新建一个test.cpp来测试我们写的Person类:

     1 #include <iostream>
     2 #include "Person.h"
     3 
     4 using namespace std;
     5 
     6 int main()
     7 {
     8     Person xc;
     9     
    10     xc.age = 18;
    11     xc.name = "流浪";
    12     xc.sex = "";
    13 
    14     xc.say();
    15     return 0;
    16 }

    注意到开头时有#include "Person.h"的声明,证明我们使用到了我们刚写的Person类。

    运行后的输出结果为:

    这是最简单的用法,有错误之处请大家指正!

    参考博客:https://www.cnblogs.com/fenghuan/p/4794514.html

  • 相关阅读:
    /etc/sysctl.conf 控制内核相关配置文件
    python 并发编程 非阻塞IO模型
    python 并发编程 多路复用IO模型
    python 并发编程 异步IO模型
    python 并发编程 阻塞IO模型
    python 并发编程 基于gevent模块 协程池 实现并发的套接字通信
    python 并发编程 基于gevent模块实现并发的套接字通信
    python 并发编程 io模型 目录
    python 并发编程 socket 服务端 客户端 阻塞io行为
    python 并发编程 IO模型介绍
  • 原文地址:https://www.cnblogs.com/remote/p/10371959.html
Copyright © 2011-2022 走看看