C++接口
问题描述 | 解决方式 |
无法解析的外部符号 “public: __cdecl MiniDL::Operator::Operator(void)” (??0Operator@MiniDL@@QEAA@XZ),该符号在函数 “public: __cdecl MiniDL::DenseOP::DenseOP(void)” (??0DenseOP@MiniDL@@QEAA@XZ) 中被引用 DeepLearning E:\workspace\DeepLearning\DeepLearning\DenseOP.obj 1 | 因为Opertor为C++接口,不应该有构造函数;或者是因为C++接口中虚函数的定义方式有误(虚函数定义的时候最后函数体要等于一个数,最好是0) |
C++中const在函数名前面和函数后面的区别 | 当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。 |
不能实例化抽象类 | 只需要将接口中定义的虚函数实例化了就行。但是我在接口中的虚函数名与子类中对应函数名不一致,导致出现了这种类型的错误 |
严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 “void __cdecl MiniDL_TEST::test_mathfunctions(void)” (?test_mathfunctions@MiniDL_TEST@@YAXXZ),该符号在函数 main 中被引用 DeepLearning E:\workspace\DeepLearning\DeepLearning\main.obj 1 | 在头文件以及源文件中使用了命名空间。然而在写的时候只在源文件或头文件中写了namespace,在另一个文件中没有写 |