C++ 类函数已定义但不被调用(C+;+;)

C++ 类函数已定义但不被调用(C+;+;),c++,function,class,C++,Function,Class,我想从类“hello”调用一个公共函数,但是这个错误不允许我调用。请告诉我我做错了什么 代码如下: #包括 使用std::cout; 使用std::cin; 使用std::string; 同学们好{ 公众: void sayit(){ cout-str; 如果(str==“开始”){ //这就是错误发生的地方。 你好,说吧; } } 这就是错误: [错误]在“.”标记之前应为非限定id void sayit()定义类成员函数 要调用类成员函数,需要该类的实例 hello hello_insta

我想从类“hello”调用一个公共函数,但是这个错误不允许我调用。请告诉我我做错了什么

代码如下:

#包括
使用std::cout;
使用std::cin;
使用std::string;
同学们好{
公众:
void sayit(){
cout-str;
如果(str==“开始”){
//这就是错误发生的地方。
你好,说吧;
}
}
这就是错误:

[错误]在“.”标记之前应为非限定id

void sayit()
定义类成员函数

要调用类成员函数,需要该类的实例

hello hello_instance;
hello_instance.sayit();
或者,您可以将
sayit
更改为静态函数。静态函数是该类的成员,但不需要该类的实例。因此,
静态
方法中不存在
变量,并且不能使用非静态成员变量

static void sayit(){
    cout << "Hello, World!";
}

您需要使
sayIt()
static
或声明一个
hello
对象,然后调用
方法
。静态方法看起来像
static void sayIt()
,您可以像
hello.sayIt()那样调用它
作为静态方法,不需要类的实例来工作。如果使用
hello
对象,它将像这样执行
hello x;x.sayIt()

您需要使sayIt()或静态或声明hello对象,然后调用MethodRecommendation添加如何调用静态函数的演示,因为它与询问者尝试的有点不同。@user4581301我将此添加到我的答案中。
static void sayit(){
    cout << "Hello, World!";
}
hello::sayit();