c++
吉祥如意锁
这个作者很懒,什么都没留下…
展开
-
c++中被赋值的函数
在c++中函数可以被赋值吗,之前我一直认为函数只等当做右值被赋值给其他左值对象,其实函数也是可以作为左值对象,但是函数在某些情况下是可以作为左值对象的。这当然需要理解普通的函数为什么不能被赋值?首先被赋值的对象是左值对象,而左值对象必须是持久的,而不是一个临时对象。而函数的返回值是一个临时对象,所以它的内存空间在函数调用后将会被销毁。为了保证函数的返回值不是临时变量,需要保证返回值是一个固定的内存原创 2017-09-30 21:00:34 · 952 阅读 · 0 评论 -
虚函数的运行机制
每个含有虚函数的类都含有一个虚函数表,该虚函数表被所有类对象所共享。类的每个虚成员占据虚函数表中的一行。如果类中有N个虚函数,那么其虚函数表将有N*4字节的大小。虚函数(virtual function)是通过一个虚函数表(virtual table )来实现的,虚函数表里存储的是每个虚函数的地址。 虚函数表主要是一个虚函数查找表,主要是在运行时根据指针对象或者引用对象的类型调用相应的虚函原创 2017-09-30 20:39:05 · 492 阅读 · 0 评论 -
C++ 构造函数、赋值函数、析构函数、右值引用
1 在c++中,每个类都有自己的构造函数,只有有些类拥有默认的构造函数,由编译器默认构造,叫做默认构造函数。除此之外,可以在类中显示定义构造函数。 例如:class A{public: A(int a1):a(a1){ cout"construction A"<<endl; } ~A(){ cout"destruction A"<<e原创 2017-09-30 16:02:20 · 650 阅读 · 0 评论