C++结构体提前声明 5

structStu{charname[20];charno;Birthborn;};structBirth{intyear;};怎么提前声明Birth使结构Stu中的Bi... struct Stu
{
char name[20];
char no;
Birth born;
};
struct Birth
{
int year;
};
怎么提前声明Birth使结构Stu中的Birth使用?
展开
 我来答
nigoole
2014-02-08 · TA获得超过1369个赞
知道小有建树答主
回答量:675
采纳率:71%
帮助的人:448万
展开全部
这样使用比较好看:

// 提前定义需要套用的结构体
typedef struct

{
int year;
} s_birth_t; // 这样定义结构体名称比较容易知道这是结构体变量
// 定义后以下可以直接使用

typedef struct

{
char name[20];
char no;
s_birth_t born;
} s_stu_t;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a904003695
2014-02-08 · TA获得超过1547个赞
知道小有建树答主
回答量:426
采纳率:100%
帮助的人:200万
展开全部
class Birth;
示例
class B;
class A
{
B *p;
B &b;
};
void main(void)
{
}
class B
{
public:
int i;
char b;
};
只能使用引用和指针,在类实体完全可见之前
应用例子,
class B;
class A
{
public:
A(B &v):b(v){};
B *p;
B &b;
};
class B
{
public:
B()
{};
int i;
char b;
};
void main(void)
{
B b;
A a(b);
a.b.i=100;
cout<<a.b.i<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cooke1234
2014-02-08 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3589万
展开全部
把Birth的声明挪到Stu之前就可以了。
struct Birth {...};
struct Stu {... Birth born;};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
520ckyear
2014-02-08 · TA获得超过302个赞
知道小有建树答主
回答量:433
采纳率:100%
帮助的人:128万
展开全部
将它们调换一下位置
struct Birth
{
int year;
};
struct Stu
{
char name[20];
char no;
Birth born;
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangyun267
推荐于2016-11-13 · 知道合伙人历史行家
wangyun267
知道合伙人历史行家
采纳数:4290 获赞数:91646
毕业于南京工业学院,读过很多历史相关书籍。

向TA提问 私信TA
展开全部
结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同:
首先结构体可以在一个结构中声明不同的数据类型。
第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式