Yinzhien 2021-12-05 15:06 采纳率: 87.5%
浏览 14
已结题

如何查找出下面的错误?静态函数求总人数有问题吗?


include <iostream>
#include<string>
using namespace std;

class person
{
private:
    string name,sex;
    int age;
    static int sum;//定义类的静态数据成员
public:
    virtual void init(string n,string s,int t)//输入
    {
        name=n;
        sex=s;
        age=t;
        sum++;
    }
    virtual void print()//输出
    {
        cout<<"姓名:"<<name<<endl;
        cout<<"性别:"<<sex<<endl;
        cout<<"年龄:"<<age<<endl;
    
 
 
    }
    static int get_sum;//定义类的静态成员函数
    {
            cout<<"总人数:"<<sum<<endl;
            return sum=0;    
    }
};

int person::sum=0;//类外分配内存空间

class student:public person
{
private:
    string speciality;//专业
 
public:
   virtual void init(string n,string s,int t,string sp)
    {
        person::init( n,s,t);
        speciality=sp;
    }
    virtual void print()
    {
        person::print();
        cout<<"专业: "<<speciality<<endl;
        person::get_sum();
    }
};

class teacher:public person
{
private:
    string department;
    
public:
   virtual void init(string n,string s,int t,string d)
    {
        person::init(n,s,t);
        department=d;
    }
   virtual void print()
    {
        person::print();
        cout<<"院系: "<<department<<endl;
        person::get_sum();
    }
};

class employee:public person
{
private:
    string work,post;//部门,职务
    
public:
   virtual void init(string n,string s,int t,string w,string p)
    {
        person::init(n,s,t);
        work=w;
        post=p;
    }
   virtual void print()
    {
        person::print();
        cout<<"部门: "<<work<<endl;
        cout<<"职务: "<<post<<endl;
        person::get_sum();
    }
};

int main()
{
    student qq;
    qq.init("赵三","男",18,"物联网");
    qq.print();
    
    teacher ww;
    ww.init("王四","男",20,"计算机学院");
    ww.print();

    employee ee;
    ee.init("栋五","男",21,"后勤部","清洁员");
    ee.print();
    return 0;
}

以下是显示的错误
--------------------Configuration: 222 - Win32 Debug--------------------
Compiling...
2.cpp
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\222\2.cpp(29) : error C2059: syntax error : '{'
C:\Program Files (x86)\Microsoft Visual Studio\MyProjects\222\2.cpp(29) : error C2334: unexpected token(s) preceding '{'; skipping apparent function body
执行 cl.exe 时出错.

2.obj - 1 error(s), 0 warning(s)


  • 写回答

2条回答 默认 最新

  • 关注

    少了括号,多了分号

    static int get_sum;
    改为
    
    static int get_sum()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 创建了问题 12月5日

悬赏问题

  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)