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日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度