摘要:
最好不要将对象设为static duration的(静态的、全局的),这样的话,对象的初始化顺序以及销毁顺序均不可控,多线程时可能出现问题。构造函数:构造函数可能会调用内部函数,如果这个函数是虚函数,可能出现问题(其实也不是啥问题,如果熟悉派生类的构造过程的话)。详见下例:构造函数不会重载virtual#include <iostream>using std::cout;using std::endl;class Base{public: virtual void Foo(){ cout << "执行了Base的Foo()函数" << e 阅读全文
摘要:
static用于声明全局变量(包括类的对象),局部变量,全局函数,类的成员变量和成员函数。即,static不能用于类、结构、枚举、联合的声明。static有如下用途:①使变量具有初值:静态变量具有初值。局部变量是没有初值,而static的局部变量将有初值。全局变量本身就具有初始值,所以static不发生作用。static用于全局变量,更多是用于解决命名冲突问题。static确定初始值#include <iostream>void PrintNormal(){ int i; double d; char c; int* p; std::cout << a << 阅读全文