医院网站模板 html,东莞网络营销型网站,上海网站开发哪里有,公司网络维护员是干什么的文章目录 1.inline函数2.this指针3.初始化顺序 1.inline函数 可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数 inline函数会在调用的地方展开#xff0c;所以符号表中不会有inline函数的符号名#xff0c;不存在链接冲突。
2.this指针 A.静态成员函数没… 文章目录 1.inline函数2.this指针3.初始化顺序 1.inline函数 可以在同一个项目的不同源文件内定义函数名相同但实现不同的inline函数 inline函数会在调用的地方展开所以符号表中不会有inline函数的符号名不存在链接冲突。
2.this指针 A.静态成员函数没有this指针只有非静态成员函数才有且为隐藏指针
B.非静态成员函数的第一个参数就是隐藏的this指针
C.this指针是一个形参存在栈上但是VS下存在ECX寄存器下。编译器在生成程序时加入了获取对象首地址的相关代码并把获取的首地址存在寄存器ECX中其它编译器可能不同也就是说成员函数的其它参数都正常存放在栈中而this指针存放在ECX寄存器中类的静态成员函数因为没有this指针这个参数所以类的静态成员函数无法调用类的非静态成员变量****
D.单纯的对this赋空是不可以的不过可以强转直接赋空不过一般不进行这样的操作 2. A.全局函数不具备this指针
B.static函数不具备this指针
C.友元函数不具备this指针
D.普通成员方法具有隐藏的this指针
3.初始化顺序
常量以及引用只能通过初始化列表初始化静态成员只能在类外初始化代码题
class A{public:A(int a):_a1(a),_a2(_a1){}void Print(){cout_a1 _a2endl;}private:int _a2;int _a1;}int main(){A aa(1);aa.Print();}初始化顺序由定义类时的声明顺序决定所以先初始化_a2,由于初始化_a2时_a1还未初始化所以_a2为随机值 输出1 随机值 在一个cpp文件里定义了一个static类型的全局变量, 只能在该cpp所在的编译模块中使用该变量 static限制了变量具有文件域