C++调用函数输出类中成员 程序中不显示

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<iostream>
#include<string>
using namespace std;
class village
{
public:
     village(int ,string );
     void show();
     void usedwater(int k);
    static showwater();
private:
    string name;
    int num;
    static int water;
    

};

village::village(int i,string j)
{
    num=i;
name=j;

}
void village::show()//获得村名和人数
{
    cout<<"村名:"<<name<<" ";
cout<<"人数:"<<num<<endl;
}

void village::usedwater(int k)//用水
{int a=k;
cout<<"用水:"<<a<<endl;
}

static int water=100;

static nowwater(int m)//当前水位
{
int n;
n=water-m;
cout<<"当前水位:"<<n<<endl;
}

int main()
{village a(100,"张村");
village b(200,"李村");
a.show;
a.usedwater;
a:;nowwater(30);
b.show;
b.usedwater;
static int water=100;
b:;nowwater(60);

return 0;
}


运行结果及报错内容

无报错
没有输出

img


img

我的解答思路和尝试过的方法
我想要达到的结果

大兄弟,这个代码要是你自己写的,你的c++基础太差了,看看初级语法的书,我当时看的谭浩强的,简单入门,不要着急写程序
如有帮助,请采纳

第10行 static showwater(); 修改为 static int showwater();
第39行 static nowwater(int m)//当前水位 static void nowwater(int m)//当前水位

第50、51、53、54调用函数叫()
51行、54行没有实参

52、56是静态函数,和对象a、b没有关系
nowwate()

#include<iostream>
#include<string>
using namespace std;
class village
{
public:
    village(int, string);
    void show();
    void usedwater(int k);
    static void showwater();        
private:
    string name;
    int num;
    static int water;


};

village::village(int i, string j)
{
    num = i;
    name = j;

}
void village::show()//获得村名和人数
{
    cout << "村名:" << name << " ";
    cout << "人数:" << num << endl;
}

void village::usedwater(int k)//用水
{
    int a = k;
    cout << "用水:" << a << endl;
}

static int water = 100;

static void nowwater(int m)//当前水位
{
    int n;
    n = water - m;
    cout << "当前水位:" << n << endl;
}

int main()
{
    village a(100, "张村");
    village b(200, "李村");
    a.show();
    a.usedwater(20);
    nowwater(30);
    b.show();
    b.usedwater(20);
    static int water = 100;
    nowwater(60);

    return 0;
}

运行结果:

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/272683883946126.png "#left")

你的代码存在语法错误
我按照你的代码思路修正了代码
但结果需要你自己调整,比如调整输入达到你的预期希望
最后如果你采纳我的建议,点个小采纳

#include<iostream>
#include<string>
using namespace std;
class village
{
public:
     village(int ,string );
     void show();
     void usedwater(int k);
     void showwater(int m);
private:
    string name;
    int num;
    int water=100;
    
 
};
 
village::village(int i,string j)
{
    num=i;
    name=j;
 
}
void village::show()//获得村名和人数
{
    cout<<"村名:"<<name<<" ";
    cout<<"人数:"<<num<<endl;
}
 
void village::usedwater(int k)//用水
{
    int a=k;
    cout<<"用水:"<<a<<endl;
}
 
void village::showwater(int m)//当前水位
{
    int n;
    n=water-m;
    cout<<"当前水位:"<<n<<endl;
}
 
int main()
{
    village a(100,"张村");
    village b(200,"李村");
    a.show();
    a.usedwater(30);
    a.showwater(30);

    b.show();
    b.usedwater(60);
    b.showwater(60);
 
    return 0;
}
 

img

调用类函数成员后面要加(),比如说调用show函数时,要这样:a.show()