永发信息网

急 c++ 模板 一个类如何声明另一个类中的内嵌类的指针

答案:2  悬赏:0  手机版
解决时间 2021-03-10 17:11
有2个模板类A,C,类A中有一个内嵌模板类B(权限为public),现在类C引入了类A。
请问能不能在类C中声明一个类B类型的指针,如果可以怎么声明
环境为VS2012 请测试可行后在回答谢谢。

项目1:

template

class A
{
public:
template
class B{...};
...一些声明...

};
项目2:
#include "../项目1/A.h"

template
class C

{
private:
能不能声明类B类型的指针?
// A::B *b;//这样是错的
//A::B *b;//语法上没有问题但是编译时通不过因为使用模板类需要模板参数列表

};
最佳答案
问题:急 c++ 模板 一个类如何声明另一个类中的内嵌类的指针
回答:这样声明不可以吗
class C
{
private:
A::B *b;

};
全部回答
我不知道为什么空指针不能类型检查,我想大概因为它是“空”的吧。 不过我知道,空指针是这样的, cha*k=0;//null k是空指针。 大家一块讨论 qq:380208702 看到上下楼的回答,我无语了 首先: void*这不叫空指针,这叫无确切类型指针.这个指针指向一块内存,却没有告诉程序该用何种方式来解释这片内存.所以这种类型的指针不能直接进行取内容的操作.必须先转成别的类型的指针才可以把内容解释出来. 还有'\0',这也不是空指针所指的内容.'\0'是表示一个字符串的结尾而已,并不是null的意思. 真正的空指针是说,这个指针没有指向一块有意义的内存,比如说: char*k; 这里这个k就叫空指针.我们并未让它指向任意地点. 又或者 char*k=null; 这里这个k也叫空指针,因为它指向null也就是0,注意是整数0,不是'\0' 一个空指针我们也无法对它进行取内容操作. 空指针只有在真正指向了一块有意义的内存后,我们才能对它取内容.也就是说要这样 k="helloworld!"; 这时k就不是空指针了. 再就是,我感觉,“许多现在以空指针为参数的函数都可以用模板来实现”,中的“空指针”并不是说空指针,而是void*(无确切类型指针) 如果函数的参数可以是任意类型指针,那么应声明其参数为void*(想一下模板,是不是有点类似?) 典型的如内存操作函数memcpy和memset的函数原型分别为: void*memcpy(void*dest,constvoid*src,size_tlen); void*memset(void*buffer,intc,size_tnum); 这样,任何类型的指针都可以传入memcpy和memset中,这也真实地体现了内存操作函数的意义,因为它操作的对象仅仅是一片内存,而不论这片内存是什么类型。空指针仅仅是申明了一个变量名,告诉编译器有个变量存在,当然你后面肯定会用到它(事实上你不用也没人怪你)。 注意c++中语法要求更严格,不允许直接对空指针赋值,而必须先进行类型转换。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奇豆之恋在什么地方啊,我要过去处理事情
求仙剑奇侠传3全攻略电子书(图文都有)
银川大巴车去山东临沂多长时间
【供给函数】经济学原理的需求函数和供给函数
车牌号6p268好不好
纸老虎.替罪羊.癞皮狗.应声虫.寄生虫.糊涂虫.
创世兵魂和生死狙击哪个好玩
雪莲小学怎么样,我孩子也要去哪里读书
金谷商厦4号门地址在哪,我要去那里办事
小米电量低于百分之二十呼吸灯开始闪,可以关
我坐出租车 出了交通事故(车有保险) 我受伤
天津市河西区卫校在哪?
已知命题p:全部x属于R,x的平方-a大于等于0,命
河水变色的原因
有谁知道新鲜机制面条的加工技术,请告知
推荐资讯
两小受在公共汽车上被轮奸然后丢在废旧汽车回
软件工程是信息技术吗?
顺丰燃气汽车安装公司这个地址在什么地方,我
我跟他是在网络上认识的快一年了,刚开始他对
劳动时人体所需要的氧气量取决于劳动强度,且
和别的女生的聊天被老婆发现了怎么办
苹果手机id密码被禁用了怎么解锁
黄可以组什么词语
【2010年语文高考题】2010年山东省语文高考试
小雨用人名英语怎么说
我算命有几个儿子
如何安装英特尔760p的驱动
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?