| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2742 人关注过本帖
标题:前向引用申明
只看楼主 加入收藏
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:3 
前向引用申明
我想知道以下几个问题:

Student类中的    Class *cla;    是指向什么数据类型的指针,应该理解为指向Class类的实例,还是某一个数组,如果是数组,那该数组是几维数组,如何输出整个数组的内容
Class类中的      Student *stu[100];     是指向数组的吗,是几维数组,如何理解,如何输出显示,还有,它的内存分配策略是什么



在线等前辈解答



8_2.zip (872.18 KB)


[此贴子已经被作者于2016-8-31 15:59编辑过]

搜索更多相关主题的帖子: 在线 如何 
2016-08-31 15:32
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
Class *cla;    是指向什么数据类型的指针
------ 指向 Class 这个数据类型的指针

Student* stu[100];     是指向数组的吗
------ 不是啊,这是定义了一个数组,数组的长度为100,数组的元素类型为Student
2016-08-31 16:10
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
收藏
得分:0 
回复 2楼 rjsp
谢了啊

[此贴子已经被作者于2016-9-1 10:53编辑过]


对待编程,要像对待情人一样
2016-09-01 09:46
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
前向引用声明
类组合时可能会出现一种特殊情况,就是类A中有类B类型的内嵌对象,而类B中也有类A类型的内嵌对象,即两个类相互包含。这时就要用到前向引用声明了。
前向引用声明是在引用没有定义的类之前对该类进行声明,这只是为程序声明一个代表该类的标识符,类的具体定义可以在程序的其他地方,简单说,就是声明下这个标识符是个类,它的定义你可以在别的地方找到。
一、使用前向应用时,只能使用被声明的符号,不能涉及类的任何细节(因为此时无法定义类的数据成员)。
例如:
class A;
class B
{
    A a;//此处错误,没有完整定义A,那么就不能定义完整的对象
};
class A
{
    B b;//正确
};
二、但是可以在给出完整的类的定义前,可以定义类的引用和指针
例如:
class A;
class B
{
    A&a;//正确,前向应用声明了类A,可以使用类对象的引用了
    A*c;//正确,前向应用声明了类A,可以使用类对象的指针了
};
三、还可以声明形参为类A对象值的函数成员,此函数成员的定义必须放在类A的定义之后。
class A;  //前向引用声明
class B
{  
public:
    void g(A a);//只能声明,定义部分必须放在类A的定义之后。
};
class A
{  
public:
    void f(B b){}
};
void B::g(A a){}

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-03 04:02
快速回复:前向引用申明
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.079402 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved