运行结果正常,下面来看看将内联函数放到.cpp中去:

/*test.h*/
#ifndef TEST_H
#define TEST_H

#include <iostream>
using std::cout;
using std::endl;

class test
{
public:
 test():x(10){}
 inline void print();
 void display (int y);
private:
 int x;
};

#endif

/*test.cpp*/
#include <iostream>
#include "test.h"
using std::cout;
using std::endl;

void test::print()
{
 cout << x << endl;
}

void test::display(int y)
{
 cout << x * y << endl;
}

  测试函数和上面的main.cpp是一样的。这是出现了错误:

  error LNK2019:无法解析的外部符号 "public: void __thiscall test::print(void)" (?print@test@@QAEXXZ),该符号在函数 _main 中被引用。如果我将测试函数改为:

int main()
{
 test T;
 T.display(10);
 //T.print();

 system("pause");
 return 0;
}

  那么运行结果正常。从此可以得出结论:内联函数放在头文件或者.cpp中都是没有错的,但如果我们需要在程序中访问它,那么必须将其放在头文件中。