在主C++中调用成员函数

use*_*120 9 c++ function

#include <iostream>

using namespace std;

class MyClass
{
public:
       void printInformation();
};

void MyClass::printInformation()
{
     return;
}

int main()
{

    MyClass::printInformation();

    fgetc( stdin );
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我该如何调用该printInformation函数main?该错误告诉我,我需要使用类对象来执行此操作.

Dan*_*ker 31

声明MyClass的一个实例,然后在该实例上调用成员函数:

MyClass m;

m.printInformation();
Run Code Online (Sandbox Code Playgroud)


Tim*_*sch 17

如果要使代码如上所述,则需要声明函数printInformation()并将其实现为静态函数.

另一方面,如果应该打印有关特定对象的信息,则需要先创建对象.


Tam*_*man 15

从您的问题来看,目前还不清楚您是否希望能够在没有标识的情况下使用该类,或者如果调用该方法需要您创建该类的实例.这取决于您是否希望printInformation成员编写一些一般信息或更具体的对象标识.

案例1:您希望在不创建实例的情况下使用该类.该类的成员应该是静态的,使用此关键字告诉编译器您希望能够调用该方法而无需创建该类的新实例.

class MyClass
{
public:
    static void printInformation();
};
Run Code Online (Sandbox Code Playgroud)

案例2:您希望类具有实例,您首先需要创建一个对象,以便该类具有一个标识,一旦完成,您就可以使用该方法的对象.

Myclass m;
m.printInformation();

// Or, in the case that you want to use pointers:
Myclass * m = new Myclass();
m->printInformation();
Run Code Online (Sandbox Code Playgroud)

如果您不知道何时使用指针,请阅读此Stack Overflow问题中的 Pukku摘要.
请注意,在当前情况下,您不需要指针.:-)