它们的根本区别在于静态成员函数没有this指针,而非静态成员函数有一个指向当前对象的指针this。 例如: 代码语言:javascript 复制 1classSc2{3public:4voidnsfn(int a);//像声明Sc::nsfn(Sc *this , int a);5staticvoidsfn(int a);// 无this指针6//...7};89voidf(Sc&s)10{11s.nsfn(10);// 转换...
它们的根本区别在于静态成员函数没有this指针,而非静态成员函数有一个指向当前对象的指针this。 例如: 1classSc2{3public:4voidnsfn(inta);//像声明Sc::nsfn(Sc *this , int a);5staticvoidsfn(inta);//无this指针6//...7};89voidf(Sc &s)10{11s.nsfn(10);//转换为Sc::nsfn(&s , 10)12s....
你可以这样来理解他们的区别:静态成员是在所有对象中共享的成员;非静态成员不是共享的,每一个对象都有自己的非静态成员。 静态函数和非静态函数,他们的区别可以从他们的调用方式看出来。 非静态成员是“_thiscall”,只能通过对象访问。_thiscall就意味着编译器会把this指针加在参数列表中,如果没有实例化的对象this指...
它们的根本区别在于静态成员函数没有this指针,而非静态成员函数有一个指向当前对象的指针this。例如:class Sc { public: void nsfn(int a); //像声明Sc::nsfn(Sc *this , int a); static void sfn(int a); // 无this指针 //... }; void f(Sc &s) { s.nsfn...
C++静态成员函数和非静态成员函数的主要区别 1. 不能用virtual、const、volatile修饰 2. 不属于任何对象,属于类,直接可以用类名访问 3. 没有this指针