- 博客(10)
- 收藏
- 关注
原创 c++中不能被声明为虚函数的函数
普通函数只能被重载,编译器在编译时绑定函数静态成员函数静态属于类级别的修饰,不存在对象运行时动态绑定内联成员函数内联函数也是编译时展开的的函数,和虚函数的动态绑定矛盾构造函数对象还没创建,虚表指针还没形成,无法使用virtual友元函数有缘函数不支持继承关系,所以没有虚...
2020-05-22 15:20:17
101
原创 python函数参数(值、引用)
python函数参数(值、引用)首先要知道python变量有两种分类:不可变变量:string、number、tuple可变变量:list、dict总结不可变变量做为参数,是值传递 可变变量作为参数,是传引用...
2020-04-24 19:09:24
166
2
原创 c++ 继承子类的sizeof
都需要对齐!普通继承:基类大小+非static成员变量大小普通继承(带有虚函数):注意有一个虚表指针即可,无论有多少继承,只有一个虚表!虚继承:经典的菱形继承 ABCD,sizeof(D)=sizeof(B)+sizeof(C)- sizeof(A) +sizeof(D类的成员大小)写的简略,不懂得可以问
2016-08-16 18:47:25
773
3
原创 c++ 构造函数初始化列表,构造函数的调用顺序
列表初始化要比赋值初始化效率高,养成好习惯使用初始化列表哟 !而且对于const修饰的变量和引用型变量必须用这种方式初始化列表初始化的顺序:初始化的顺序与列表中书写的顺序无关,与继承的顺序(不写父类初始化说明调用了默认构造函数)和变量声明的顺序相同!!派生类构造函数的调用次序:(先虚基类,后基类,再成员对象,最后自身)(1)对虚基类间的构造函数的顺序:根据虚基类间继
2016-08-05 17:00:28
646
原创 虚基类的作用
B和C都继承A,D继承B,又继承C,如下图:普通继承中,每继承一次就保留一份间接基类,而虚继承只保留一份!class A{ public: int i; void showa(){cout<<"i="<<i<<endl;}};class B:virtual public A //此处采用虚继承{ public: i
2016-08-05 14:03:49
364
转载 数组名 和 &数组名
假设我们定义一个数组char a[16]; 那么a与&a分别代表什么呢?它们完全一样吗?a其实代表的是数组中首元素的地址,即a[0]的地址,&a代表的是整个数组的起始地址。我们做个测试就可以很容易知道。我们分别测试a a+1 &a &a+1这四个值,它们分别为:a0x0012fcc8a+10x0012fcc9
2016-08-03 18:04:15
374
转载 struct和typedef struct的理解
struct和typedef struct分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s
2016-07-28 18:12:41
205
转载 const 修饰分析
const用于修饰函数时,一般是const修饰类的成员函数(函数定义体),表示在函数体中成员变量不能改变;其函数形式为:int ff(void)const;const修饰函数的返回值,用于返回常量;如const int ff(); //返回的是常量,所以必须这么调用 const int a=ff();又如给"指针传递"的函数返回值加const,则返回值不能被直接修改,且该返回值只能
2016-07-28 17:49:58
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人