谁能解释一下编译出错是怎么回事啊?

void bookmanger::add() //bookmanger类已经定义好了,add函数也写完整了,但是调用的时候怎么调用啊
我调用的时候写的是
bookmanger::add();
但是编译出错:cannot call function"bookmang::add()"without object

慕标5832272
浏览 157回答 3
3回答

凤凰求蛊

函数调用的一般形式为:函数名(实参列表);实参可以是常数、变量、表达式等,多个实参用逗号分隔。在C语言中,函数调用的方式有多种,例如:// 函数作为表达式中的一项出现在表达式中z = max(x, y);m = n + max(x, y);// 函数作为一个单独的语句printf("%d", a);scanf("%d", &b);// 函数作为调用另一个函数时的实参printf( "%d", max(x, y) );total( max(x, y), min(m, n) );在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用呢,还是自右向左使用。对此,各系统的规定不一定相同。

青春有我

不能用类名调用,要用对象名来调用,比如你可以这样做:先定义一个对象,再用这个对象来调用函数:bookmanger bm1;bm1.add();如果你一定要用类名来调用,可以定义函数为static:static void bookmanger::add()

慕田峪4524236

先实例化一个对象,bookmanager bm1;bm1.add();这样调用。bookmanger::add()这样的调用方法只有在有方法覆盖或重写时才能调用,或者将该方法设为静态方法。
打开App,查看更多内容
随时随地看视频慕课网APP