在没有库的头文件中创建类和函数

时间:2017-10-04 14:52:23

标签: c++

您好我想创建自己的公共c ++工具,如自动套接字连接。但我有两种方式,我想知道哪种方式更好。 方式1: 在一个头文件中插入函数(带源代码),其他人只包含头文件并使用函数...
sock.h

#include <iostream>

class sock {

    public:

    bool create();
    bool bind();
    bool listen();
}

inline bool sock::create() { ... }
inline bool sock::bind() { ... }
inline bool sock::listen() { ... }

第二种方法是创建头文件并创建静态库(c ++)
sock.h

#include <iostream>

class sock {

    public:

    bool create();
    bool bind();
    bool listen();
}

sock.cpp

#include "sock.h"

bool sock::create() { ... }
bool sock::bind() { ... }
bool sock::listen() { ... }

哪种方式更好? (我自己选择第一种方式,因为客户端很容易只包含一个头文件并使用这些功能,但第二种方式客户端必须包含头文件并包含lib文件。第一种方式有问题吗?

1 个答案:

答案 0 :(得分:1)

功能上没有问题。但是通过将函数定义保留在头文件中,每次将头文件导入源文件时,所有定义都将再次编译,对编译时间和二进制文件大小产生负面影响(在某些情况下)。

最佳做法是只定义一次,尽可能向前声明。保持抽象水密。

除非您使用模板类,否则通常需要标头定义。