新微赢技术网

标题: 析构函数可以是内联函数吗? [打印本页]

作者: 陈君    时间: 2009-11-4 01:57
标题: 析构函数可以是内联函数吗?
析构函数可以是内联函数吗?书上说是的,还举例了,可是我按他写的出现了错误,大家看看该怎么改?
#include<iostream>
using namespace std;
class A
{
public:
    void foo()
    {cout<<"A"<<endl;}
    ~A();
}
inline A::~A()
{cout<<"inline";}

int main()
{
    A *p=new A();
    p->foo();
    delete p;
    return 0;
}
作者: ▄愛變鎖ゞ    时间: 2009-11-4 01:57
类定义时,结束用分号
class   类名
{  };
作者: 青松    时间: 2009-11-4 01:57
你这样写就行:
#include<iostream>
using namespace std;
class A
{
public:
    void foo()
    {cout<<"A"<<endl;}
   inline ~A()
   {cout<<"inline";}
};

int main()
{
    A *p=new A();
    p->foo();
    delete p;
    return 0;
}
作者: 温柔乡    时间: 2009-11-4 01:57
二楼说得很对啊,你原来那个没什么问题啊...
只是少个分号...
作者: ゛,    时间: 2009-11-4 01:57
好象前面 加不加 inline 没有太大的作用
编译器会自己选择的吧
作者: ︶ㄣ⒏懂緈諨    时间: 2009-11-4 01:57
newyj 在 2008-9-10 20:07 的发言:

好象前面 加不加 inline 没有太大的作用
编译器会自己选择的吧


应该是的...
作者: 兮哩糊涂の斗    时间: 2009-11-4 01:57
当然可以!!
比如说
using std::cout;
class Time
{
   pulibc:
     //....
    inline ~Time()
    {
        cout << "destructor called.\n";
    }
};

内联函数一般适合用于函数体较小的,没有循环或switch的语句.可以提高执行效率.如果函数执行时间比较长,即使你声明为内联的,,编译器也当做是常规函数.析构函数一般不声明为内联的.
作者: 兲外☆飛唬    时间: 2009-11-4 01:57
inline只是我们给编译器的建议,未必会真的就内联了。




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2