C++ 一道题。
A*&p不理解这里。#include<iostream>usingnamespacestd;classA{};classB{public:voidcreate(A*&p)...
A *&p 不理解这里。
#include <iostream>
using namespace std;
class A{};
class B
{
public:
void create(A *&p) const;
void destroy(A *&p) const;
};
void B::create(A *&p) const
{
p = new A[2];
}
void B::destroy(A *&p) const
{
delete[] p; //0.5分
}
void main()
{
B b;
A *p;
b.create(p);
b.destroy(p);
} 展开
#include <iostream>
using namespace std;
class A{};
class B
{
public:
void create(A *&p) const;
void destroy(A *&p) const;
};
void B::create(A *&p) const
{
p = new A[2];
}
void B::destroy(A *&p) const
{
delete[] p; //0.5分
}
void main()
{
B b;
A *p;
b.create(p);
b.destroy(p);
} 展开
4个回答
展开全部
A *&p就是声明一个【【指向【A类的对象】的指针】的引用】,并取名叫p……声明的时候不存在什么*&可以对消的问题
追问
感谢!
能再问下为什么 一定要这样吗?
另外 我试了 类内和main中对应的很多改法都不行。 还能改成别的样子吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是 A类定义一个对象p ,等价于A p,
因为 &p是取p的地址 ,*是取地址中的值,所以 *&p就是p
因为 &p是取p的地址 ,*是取地址中的值,所以 *&p就是p
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我真的不会了。计算机方面的啊。。不好意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询