关于结构体封装的问题

pgmvo 2010-10-12 11:33:45
有个结构体Student
typedef struct Student
{
int a;
int b;
.....
/// 还有有很多成员
};

有两个地方同时用到这个结构体,
现在其中有个用到这个结构体的地方需要在这个结构体中加一个字段string stu_name;
但是另外一个地方不需要用到这个字段,如果把这个字段直接加到这个结构体,那么
两个地方都需要重新测试,比较麻烦。

请问有什么办法可以解决这个问题吗?
...全文
148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果你用c++,可以用继承,但是按你说的情况,加进去也可以啊,不能太死
pgmvo 2010-10-12
  • 打赏
  • 举报
回复
可以变也可以不变,像上面两位提的意见都可行
只是我想要一种合理的做法,或者说一般这种情况下大家会怎么做。

[Quote=引用 6 楼 petewong 的回复:]
那么现在问题就来了:
1.你想修改原有内存结构;
2.在应用的地方,你还是希望能够应用原来的内存结构

你是既希望它改变,又不希望它改变
那你是希望它变不变?
[/Quote]
petewong 2010-10-12
  • 打赏
  • 举报
回复
那么现在问题就来了:
1.你想修改原有内存结构;
2.在应用的地方,你还是希望能够应用原来的内存结构

你是既希望它改变,又不希望它改变
那你是希望它变不变?
pgmvo 2010-10-12
  • 打赏
  • 举报
回复
请问继承的话要怎么设计

[Quote=引用 4 楼 flatfoosie 的回复:]
引用 2 楼 pgmvo 的回复:
这样的话相关到student这个结构体操作的地方就要有比较多的改动,
而且封装性不好,相同属性的变量为什么不放在同一个结构体里面。


引用楼主 pgmvo 的回复:
有个结构体Student
typedef struct Student
{
int a;
int b;
.....
/// 还有有很多成员
};

有两个地方同时用到……
[/Quote]
flatfoosie 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pgmvo 的回复:]
这样的话相关到student这个结构体操作的地方就要有比较多的改动,
而且封装性不好,相同属性的变量为什么不放在同一个结构体里面。


引用楼主 pgmvo 的回复:
有个结构体Student
typedef struct Student
{
int a;
int b;
.....
/// 还有有很多成员
};

有两个地方同时用到这个结构体,
现在其中有个用到这个结……
[/Quote]

这样的话 不会 俺坐等高手了,。、

不过最初用继承来设计,就方便多了吧。
flatfoosie 2010-10-12
  • 打赏
  • 举报
回复

typedef struct Student2 {
Student in_student;
string stu_name;
}

pgmvo 2010-10-12
  • 打赏
  • 举报
回复
这样的话相关到student这个结构体操作的地方就要有比较多的改动,
而且封装性不好,相同属性的变量为什么不放在同一个结构体里面。

[Quote=引用楼主 pgmvo 的回复:]
有个结构体Student
typedef struct Student
{
int a;
int b;
.....
/// 还有有很多成员
};

有两个地方同时用到这个结构体,
现在其中有个用到这个结构体的地方需要在这个结构体中加一个字段string stu_name;
但是另外一个地方不需要用到这个字段,如果把这个字段直接加到这个结构体,那么
两个地方都需要重新……
[/Quote]
petewong 2010-10-12
  • 打赏
  • 举报
回复
再定义一个结构体 加入那个字段
pgmvo 2010-10-12
  • 打赏
  • 举报
回复
各位高手帮帮忙
billlllyove 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 petewong 的回复:]
那么现在问题就来了:
1.你想修改原有内存结构;
2.在应用的地方,你还是希望能够应用原来的内存结构

你是既希望它改变,又不希望它改变
那你是希望它变不变?
[/Quote]


#6正解.

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧