我得到这个问题的家庭作业。 它编译和运行如预期,但我应该找什么不对的地方,虽然没什么用const做。
我知道这是一个结构,所以我的变量是所有的公共 - 这是没有问题的。 我想也许它关系到在构造函数中的“新”的使用。 我很想听听你的看法。
struct X
{
explicit X(int);
~X();
void Foo();
void Bar() const;
int m_a;
int *m_p;
};
X::X(int a_): m_a(a_), m_p(new int(a_)){}
X::~X()
{
delete m_p;
m_p = NULL;
}
void X::Foo()
{
++m_a;
--(*m_p);
}
void X::Bar() const
{
std::cout<<m_a<<std::endl;
std::cout<<*m_p<<std::endl;
std::cout<<m_p<<std::endl;
}
void Fifi(const X& x_)
{
x_.Bar();
}
int main (void)
{
X x1(1);
x1.Foo();
Fifi(x1);
return 0;
}