C++错误收集(2)

ERROR NO.2

内置函数inline。类体中定义的函数功能一般规模较小,系统调用类为定义的函数的过程需要的时间开销是比较大的,为了减少系统调用函数的时间开销,如果在类体智能光定义的函数不包括循环等控制结构,C++会自动将它们作为内置函数。
内置函数的作用是将函数实现的代码替代声明的地方,以减小系统调用类外函数的时间开销。
今天使用是遇到了问题,代码如下

//head.h #include <iostream> #include <string> using namespace std; class Student { public: inline void Display(); inline void set_vlaue(); protected: private: int num; string name; char sex; }; //main.cpp #include "head.h" using namespace std; int main() { Student stu; stu.set_vlaue(); stu.Display(); return 0; } //student.cpp #include "head.h" void Student::set_vlaue() { cin >> num; cin >> name; cin >> sex; } void Student::Display() { cout << "num:" << num << endl; cout << "name:" << name << endl; cout << "sex:" << sex << endl; }

在编译是出现如下错误:
1>mian_s3_3.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall Student::Display(void)" (?Display @Student @@QAEXXZ),该符号在函数 _main 中被引用
1>E:\VCworkspace\C++_exercise\lx_3\Debug\shiyan3_3.exe : fatal error LNK1120: 1 个无法解析的外部命令

解决方法:
仔细检查发现inline函数使用时函数实现必须也在定义类的文件中。

点赞
收藏

评论区

加载中...

相关推荐

C++基类的析构函数定义为虚函数的原因

1:每个析构函数只会清理自己的成员(成员函数前没有virtual)。2:可能是基类的指针指向派生类的对象,当析构一个指向派生类的成员的基类指针,这时程序不知道这么办,可能会造成内存的泄露,因此此时基类的析构函数要定义为虚函数;基类指针可以指向派生类的对象(多态),如果删除该指针delete\\p,就会调用该指针指向的派生类的析构函数,而派生类

Python基础(六)

1函数1.1函数的分类函数可以分成三种:内置函数(BIF):解释器中内置的函数,可以直接通过函数名调用,如len().模块函数:定义在模块中的函数,通过模块名调用,如math.sin().用户自定义函数.1.2函数与方法函数是指在类外定义的,可以独立调用的

HIVE 时间操作函数

日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec

PostgreSQL函数如何返回数据集

以下主要介绍PostgreSQL函数/存储过程返回数据集,或者也叫结果集的示例。背景:PostgreSQL里面没有存储过程,只有函数,其他数据库里的这两个对象在PG里都叫函数。函数由函数头,体和语言所组成,函数头主要是函数的定义,变量的定义等,函数体主要是函数的实现,函数的语言是指该函数实现的方式,目前内置的有c,plpgsql,sql和in

Boost Python官方样例(三)

导出C类(纯虚函数和虚函数)大致做法就是为class写一个warp,通过get\_override方法检测虚函数是否被重载了,如果被重载了调用重载函数,否则调用自身实现,最后导出的时候直接导出warp类,但是类名使用class,析构函数不需要导出,因为它会被自动调用纯虚函数编写C函

C++构造函数调用虚函数的后果

include<iostreamclasscx{public:virtualvoidfunc(){std::cout<<"func"<<std::endl;}cx(){func();//构