(1)静态成员函数中不能调用非静态成员。 (2)非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。 (3)静态成员变量使用前必须先初始化(如int MyClass::m_nNumber = 0;),否则会在linker时出错。 一般总结:在类中,static可...
此时,你可以在调用静态方法时传入一个对象实例。通过对象实例,你可以直接访问非静态方法。
一个类不同的对象实例的静态变量是同一个变量,所以静态成员函数的调用可以全局调用,而无须指明是对哪一个对象操作。 静态成员(类中用static声明)用类名::成员名的方式访问,非静态成员必须通过定义的类对象来访问。
或者,从类外部将非静态成员函数作为静态函数进行了调用。 下面的示例生成 C2352,并演示如何修复此错误: C++ // C2352.cpp// compile with: /cclassCMyClass{public:staticvoidfunc1();voidfunc2();staticvoidfunc3(){ func2();// C2352 calls nonstatic func2func1();// OK calls static func1} }; ...
通过类的对象调用静态成员函数和非静态成员函数。 classPoint{public:voidinit(){}staticvoidoutput(){}};voidmain(){Pointpt;pt.init();pt.output();} 编译通过。 结论2:类的对象可以使用静态成员函数和非静态成员函数。 在类的静态成员函数中使用类的非静态成员。
非静态成员函数可以任意地访问静态成员函数和静态数据成员; 静态成员函数不能访问非静态成员函数和非静态数据成员; 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长; 调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数。
静态成员函数没有this指针,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数 出现在类体外的函数定义不能指定关键字static 非静态成员函数可以任意地访问静态成员函数和静态数据成员 总结 static是一个很有用的关键字,使用得当可以使程序锦上添花。当然,有的公司编码规范明...
14、关于静态成员的说法,错误的是( )A、静态成员函数可以通过类名或对象名来调用 B、静态数据成员可以通过类名或对象名来调用C、非静态成员函数不可以通过类名来调用 D、非静态的数
{ Point::init();//错误:在静态成员函数中不能调用非静态成员 } 说明:在静态成员函数中不能调用非静态成员(静态成员函数和静态成员变量);反之在非静态成员函数中可以调用静态成员,可以在修改void output(){ init(); };检验 内存模型:无论采取什么样的操作,程序代码都是在内存中执行的,只有在内存中占有一席之...
intnum;//普通成员变量 staticintdata;//静态成员变量(类内声明) public: //普通成员函数 依赖于 对象的 必须对象调用 intgetData(void) { returndata; } }; //定义的时候 不需要加static intData::data=100;//类外定义+初始化 intmain() {