c++中类内的函数怎么调用

void bookmanger::add() //bookmanger类已经定义好了,add函数也写完整了,但是调用的时候怎么调用啊

我调用的时候写的是
bookmanger::add();
但是编译出错:cannot call function"bookmang::add()"without object
谁能解释一下是怎么回事啊

紫衣仙女
浏览 887回答 4
4回答

明月笑刀无情

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

慕哥6287543

你必须先创建一个bookmanger副本,然后用bookmanger bm;bm.add()或者bookmanger *bm = new bookmanger();bookmanger->add()调用。还有你的manager拼错了。。因该是bookmanager

呼如林

先实例化一个对象,bookmanager bm1;bm1.add();这样调用。bookmanger::add()这样的调用方法只有在有方法覆盖或重写时才能调用,或者将该方法设为静态方法。

BIG阳

你必须先创建一个bookmanger副本,然后用bookmanger bm;bm.add()或者,bookmanger *bm = new bookmanger();bookmanger->add()调用。如果你一定要用类名来调用,可以定义函数为static:static void bookmanger::add()。函数中的manager拼错了,应该是bookmanager。c++构造函数:C++用以初始化对象的数据成员的一种函数。完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。扩展资料:构造函数作用:初始化对象的数据成员,规则:构造函数与类同名且无返回值,在对象实例化时自动调用、构造函数可以有多个重载形式、实例化对象时仅用到一个构造函数、当用户没有定义构造函数时,编译器自动生产一个构造函数。编译系统为对象的每个数据成员(m_strName)分配内存空间,并调用构造函数School()自动地初始化对象的m_strName值设置为"bullworth"。在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。
打开App,查看更多内容
随时随地看视频慕课网APP