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使用? 展开
{
char name[20];
char no;
Birth born;
};
struct Birth
{
int year;
};
怎么提前声明Birth使结构Stu中的Birth使用? 展开
5个回答
展开全部
这样使用比较好看:
// 提前定义需要套用的结构体
typedef struct
{
int year;
} s_birth_t; // 这样定义结构体名称比较容易知道这是结构体变量
// 定义后以下可以直接使用
typedef struct
{
char name[20];
char no;
s_birth_t born;
} s_stu_t;
// 提前定义需要套用的结构体
typedef struct
{
int year;
} s_birth_t; // 这样定义结构体名称比较容易知道这是结构体变量
// 定义后以下可以直接使用
typedef struct
{
char name[20];
char no;
s_birth_t born;
} s_stu_t;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
示例
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把Birth的声明挪到Stu之前就可以了。
struct Birth {...};
struct Stu {... Birth born;};
struct Birth {...};
struct Stu {... Birth born;};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将它们调换一下位置
struct Birth
{
int year;
};
struct Stu
{
char name[20];
char no;
Birth born;
};
struct Birth
{
int year;
};
struct Stu
{
char name[20];
char no;
Birth born;
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2016-11-13 · 知道合伙人历史行家
关注
展开全部
结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同:
首先结构体可以在一个结构中声明不同的数据类型。
第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。
首先结构体可以在一个结构中声明不同的数据类型。
第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询