Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从基类继承结构成员? 我编写了一个简单的C++代码,用继承的概念做一些库管理。我遇到了一些遗传结构问题和一些全局变量问题。 我的代码:_C++_Inheritance - Fatal编程技术网

如何从基类继承结构成员? 我编写了一个简单的C++代码,用继承的概念做一些库管理。我遇到了一些遗传结构问题和一些全局变量问题。 我的代码:

如何从基类继承结构成员? 我编写了一个简单的C++代码,用继承的概念做一些库管理。我遇到了一些遗传结构问题和一些全局变量问题。 我的代码:,c++,inheritance,C++,Inheritance,头文件: #ifndef LIBRARY_H #define LIBRARY_H #include <string.h> #include <iostream> using namespace std; static int count_emp; static int m_nCountBook; class employee { protected: typedef struct { char employee_name[20];

头文件:

#ifndef LIBRARY_H
#define LIBRARY_H

#include <string.h>
#include <iostream>

using namespace std;

static int count_emp;
static int m_nCountBook;

class employee 
{
protected:
    typedef struct
    {
        char employee_name[20];
        int employee_id;
        char employee_dept[20];
        char status_emp[10];
    } stemp;

public:
    stemp emp[10];  

    void add_employee();
    void display_employee();
};

class library : public employee
{
protected:
    typedef struct
    {   
        char book_name[20];
        int book_id;
        char author[20];
        char status_book;
    } stlib;

public:
    stlib lib[10];

    void addBook();
    void showBook();
    void bookTaken();
    void bookReturn();
};

#endif
\ifndef库
#定义库
#包括
#包括
使用名称空间std;
静态整数计数;
静态整数m_n计数器;
班级员工
{
受保护的:
类型定义结构
{
char employee_name[20];
国际雇员身份证;
char员工_部门[20];
字符状态_emp[10];
}stemp;
公众:
stemp-emp[10];
void add_employee();
无效显示_employee();
};
类库:公共雇员
{
受保护的:
类型定义结构
{   
char book_name[20];
国际图书标识;
char作者[20];
char-status\u-book;
}stlib;
公众:
stlib-lib[10];
作废addBook();
void showBook();
作废簿记();
作废bookReturn();
};
#恩迪夫
概念是当我在另一个文件中实现
booktake()
函数时,应该检查员工id并添加
状态\u emp
。如果以前员工的状态为已采取,则不允许。如何使用这两种结构定义该函数?这里还有一个问题是
静态整数计数\u emp

static int m_nCountBook
;是静态的。我怎样才能访问另一个文件

删除两个全局变量。它们可能是库类的实例字段


如果正确使用
stl
,很可能根本不需要它们。例如,用“代码> STD::向量< /代码> S替换所有数组,除了字符数组应该是代码> STD::String .< /P>当C++使用自己的帮助时,使用<代码> STD::String < /Cord>代替CHAR数组和<代码> STD::vector < /COD>而不是所有其他数组。您的代码是否使用声明为受保护但在公共接口中使用的嵌套结构进行编译?此外,请考虑您的类
employee
。是雇员吗?在我看来,它似乎应该被命名为雇主。同意@nvoigt。这看起来确实令人困惑。为什么图书馆是雇员的一个专业?为什么一名员工最多有10个姓名、ID等?
booktake()
与员工ID有什么关系?是借书人的身份证还是图书馆的身份证(在本设计中,图书馆是员工)?或者你是指
图书id
状态图书
?投票决定关闭。是的,但图书馆是图书馆,不是雇主。雇主可以拥有一个库,但这将是一个包含关系,而不是继承关系。