在动态链接库的 .cpp 中定义类的函数

Posted

技术标签:

【中文标题】在动态链接库的 .cpp 中定义类的函数【英文标题】:Defining functions of a class in .cpp of a Dynamic-link Library 【发布时间】:2016-09-10 22:07:39 【问题描述】:

最近我开始使用 c++,我想知道。 如果我正在处理 DLL,我首先在标头中定义所有类及其函数,然后将它们的功能写入同一项目的 .cpp 文件中。 但是如果我只定义类本身,然后在.cpp 文件中定义它们的函数呢?

这将在一定程度上减少所需的代码量,并且代码的可读性更高,:: 符号更少。

这样的事情可能吗?

【问题讨论】:

您是说您只想将class C; 放在标题中,然后将void C::f() ... 放在源代码中吗?那是行不通的。包含该标头的任何人都不知道该类提供了一个名为 f 的方法,因此无法调用它。 为使用DLL的程序编写代码,不可能不明显。 您需要The Definitive C++ Book Guide and List。 糟糕! 【参考方案1】:

您必须定义您的类(结构等)并在标题中声明您的命名空间和函数。话虽如此,您可以使用

using namespace <your_library_namespace>;

然后<your_library_namespace> 中的源文件中的所有内容都不需要在所有内容之前使用<your_library_namespace>::

【讨论】:

"declare your class" 显然是指"define your class"。一个类声明是class X; 是的,你需要定义你的类(和结构等)并声明你的函数

以上是关于在动态链接库的 .cpp 中定义类的函数的主要内容,如果未能解决你的问题,请参考以下文章

关于动态链接库的分析

Python调用DLL动态链接库——ctypes使用

C语言 | 什么是静态链接库和动态链接库?

动态链接库和静态链接库的区别简述

动态链接库和静态链接库的区别

Qt动态链接库的创建和使用