C++,为什么一个静态函数A,无法调用非静态函数B
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/20 08:50:31
C++,为什么一个静态函数A,无法调用非静态函数B
如 :
class Demo
{
public:
\x09 static void A();
\x09 void B();
};
void Demo::A()
{
\x09 B(); //
如 :
class Demo
{
public:
\x09 static void A();
\x09 void B();
};
void Demo::A()
{
\x09 B(); //
/*这叫做类的静态函数.什么是类的静态成员函数呢,就是属于类本身的函数,在类加载的时候,就为它们分配了空间,所以可以用类名::函数名的方式来调用静态函数.*/
Demo::A();
/*但是类的普通函数就不同了.你回想一下平时调用类的普通函数是怎么用的.你首先得创建类的实例,也就是先创建一个对象.*/
Demo demo;
//然后才能调用类的普通函数.
demo.B();
/*这是因为类的普通函数是在对象被创建的时候才为它分配空间的.所以你上面为什么会出错呢.你在静态函数里面调用了类的普通函数,你这时候创建了类的对象了吗?很显然没有.因为你没有实例化,所以这时候系统还没有为它分配空间.所以就造成了出错.*/
Demo::A();
/*但是类的普通函数就不同了.你回想一下平时调用类的普通函数是怎么用的.你首先得创建类的实例,也就是先创建一个对象.*/
Demo demo;
//然后才能调用类的普通函数.
demo.B();
/*这是因为类的普通函数是在对象被创建的时候才为它分配空间的.所以你上面为什么会出错呢.你在静态函数里面调用了类的普通函数,你这时候创建了类的对象了吗?很显然没有.因为你没有实例化,所以这时候系统还没有为它分配空间.所以就造成了出错.*/
静态函数定义.与非静态函数的区别
求一个C#静态函数和动态函数的例子
静态函数有什么作用,是静态函数,不是静态成员函数,如
定义一个求阶乘的函数,从键盘输入三个正整数a、b、c,通过函数调用求出a!/(b!+c!)
定义一个Cat类,拥有静态数据成员numofcats,记录Cat的个体数目;静态成员函数getnumofcats(),读
静态成员函数的作用是什么?什么样的函数应该定义成静态成员函数?
在一个由主函数和其他函数构成的程序中,哪种说法不对?A.函数不能嵌套定义 B.其他函数可以相互调用 C.
如何在一个静态内部类中 实例化一个非静态的内部类
写一个求二次方程ax2+bx+c根的函数.在主函数中首先由键盘输入a、b、c,然后调用求根的函数resolv
在C#中静态函数和实例函数的区别?
php.static $a=b,$b=c;是声明了两个静态的变量$a与$b?还是静态变量$a,变量$b?
在c语言中,假设定义了a,b,c三个函数,在b函数中调用a函数,注意b函数是在调用完a函数后形成的函数,那么