在cpp文件中定义inline,为什么在连接的时候会报错:error LNK2001: unresolved external symbol难道不能在cpp中使用inline吗?

解决方案 »

  1.   

    怎么写的inline ???
    现在的Release版的程序   编译器都给自动优化完了 
      

  2.   

    只是在函数名前面加了一个 inline 修饰
      

  3.   

    我是这么写的  反正编译通过了{
    //
    ...
    inline int xandy(int x , int y);
    };//cpp文件
    int CTestMFCDlg::xandy(int x , int y)
    {
    return x+y;
    }
      

  4.   

    我是这么写,出现连接错误,error LNK2001.h
    {
    //
    ...
        int xandy(int x , int y);
    };//cpp文件
    inline int CTestMFCDlg::xandy(int x , int y)
    {
        return x+y;
    }
      

  5.   

    我像你那么写也没有出错啊。
    IDE:VS2003// .H
    class Test
    {
    public:
    Test(void);
    ~Test(void);public:
    void fun();
    };//// CPP
    Test::Test(void)
    {
    }Test::~Test(void)
    {
    }inline void Test::fun()
    {
    }------ 已启动生成: 项目: Mytest, 配置: Debug Win32 ------正在编译...
    Test.cpp
    正在链接...生成日志保存在“file://e:\test\Mytest\Debug\BuildLog.htm”中
    Mytest - 0 错误,0 警告
    ---------------------- 完成 ---------------------    生成: 1 已成功, 0 已失败, 0 已跳过
      

  6.   


    你 在外部调用fun()了吗?
    调用一下试试?
      

  7.   

    试了一下,果然是不行的。
    这样就是可的:把内联函数在头文件里面实现就行了。class Test
    {
    public:
    Test(void);
    ~Test(void);public:
    inline void fun()
    {
    std::cout << "Hello" << std::endl;
    }
    };