首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

C++中结构的使用问题

我想知道在C++中结构的使用可不可以嵌套
例如我用一下程序:

定义部门结构
struct Dept
{
        string Name;
        short CostCenter;
};

定义职工结构
struct EmpPayroll
{
        string Name;
        short EmpNum; //employee's number
        bool Exempt;  // can earn overtime
        float Rate;   // rate of pay
        float Hours;  // houre worked
                    Dept Department; // 这里使用了第一个部门结构定义
};

在后面使用

// 定义两个数组  部门号  职工号
Dept dept[3];
EmpPayroll ep[MAX_EMPLOYEES];

以下两句话出现错误,谁能告诉我是怎么回事情啊

cout << ep.Department.Name << '\t';
cout << ep.Department.CostCenter<< '\t';
昵称: 宇琦  时间: 2004-04-14 20:40:00
struct是可以嵌套使用的,我们刚学过。
不过我不明白这句的意思:
EmpPayroll ep[MAX_EMPLOYEES];       //这里,你能不能解释以下~~~
昵称: zhilong  时间: 2004-04-18 14:00:00


QUOTE:
最初由 zhilong 发布
[B]struct是可以嵌套使用的,我们刚学过。
不过我不明白这句的意思:
EmpPayroll ep[MAX_EMPLOYEES];       //这里,你能不能解释以下~~~ [/B]
这里是创建一个大小为MAX_EMPLOYERS的EmpPayroll结构的数组。

MAX_EMPLOYERS这个宏哪里来的?i是何方神圣?出错信息是什么?难道都要我们来猜吗?

另外,C++建议用const的值代替宏。。。。
昵称: Ivony  时间: 2004-04-19 01:56:00
哈哈,明白了 原来是定义的常量:
const int  MAX_EMPLOYERS=100;          define MAX_EMPLOYERS   100
昵称: zhilong  时间: 2004-04-21 10:46:00


QUOTE:
最初由 zhilong 发布
[B]哈哈,明白了 原来是定义的常量:
const int  MAX_EMPLOYERS=100;          define MAX_EMPLOYERS   100 [/B]
因为const的数值在使用上和宏还是有很大的区别,所以C++不赞成这种写法:

const int  MAX_EMPLOYERS=100;
昵称: Ivony  时间: 2004-04-21 12:12:00
这个当然了!
define 是宏替换 不能定义常量的类型!
现在学习c++感觉真的很不错!
昵称: zhilong  时间: 2004-04-22 15:15:00