您好我想创建自己的公共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文件。第一种方式有问题吗?
答案 0 :(得分:1)
功能上没有问题。但是通过将函数定义保留在头文件中,每次将头文件导入源文件时,所有定义都将再次编译,对编译时间和二进制文件大小产生负面影响(在某些情况下)。
最佳做法是只定义一次,尽可能向前声明。保持抽象水密。
除非您使用模板类,否则通常需要标头定义。