C++常见知识点-总结4

时间:2022-09-05 10:24:32

1 ,纯虚函数不可能是inline函数!

即使是最简单的虚函数调用,编译器的内联处理对它也爱莫能助,(因为virtual的意思是等到运行的时候再来决定使用哪个函数,inline的意思是,在编译期间将调用之外用被调用的函数来代替。如果编译器甚至还不知道哪个函数被调用,当然不能责怪它拒绝内敛调用了。

2,类构造和析构

#include<iostream> 
using namespace std;
class B {
public:
B(){
cout << "default constructor" << " ";
}
~B(){
cout << "destructed" << " ";
}
B(int i): data(i){
cout << "constructed by parameter" << data << " ";
}
private: int data;
};
B Play( B b) {
return b;
}
int main(int argc, char *argv[])
{
B temp = Play(5);
return 0;
}

输出结果为:
1,调用play函数需要将5隐式转换为Play函数中的形参b,会调用B(int i),data(i);打印:
constructed by parameter5
2,Play函数返回时需要调用B的复制构造函数给对象temp初始化
3,Play函数返回后需要调用b的析构函数,将play的形参释放,打印“destructed”
4,main函数返回后需要释放temp,打印“destructed”