下面的C++程序有一个问题,怎么改正?为什么这么改?谁帮我写个正确的,说明下原因?

2025-06-22 22:16:59
推荐回答(4个)
回答1:

最大的错误在于你把类A作为了类B的私有成员,这与c++中的封装机制是不符合的
标准c++中一般要用名字空间using name space,main()函数要是int型,运行结果如下:
object B2 construst
object A2 construst
object A2 deconstrust
object B2 deconstrust
function main end
源程序如下
#include
using namespace std;
class A
{ public:
A(int m)
{ x=m;
cout <<"object A"< }
~A()
{
cout<<"object A"< }
private:
int x;
};
class B
{
public:
B(int m)
{ x=m;
cout<<"object B"< }
~B()
{ cout<<"object B"< private:
int x;

};
int main()
{ B b1(2);
cout<<"function main end "< return 0;
}

回答2:

#include
#inlcude "stdafx.h"
using namespace std;
class A
{ public:
A();
A(int m)
{ x=m;
cout <<"object A"<}
~A()
{
cout<<"object A"<}
private:
int x;
};
class B
{
public:
B(int m)
{ x=m;
cout<<"object B"<~B()
{ cout<<"object B"<private:
int x;
A a;
};
void main()
{ B b1(2);
cout<<"function main end "<}

回答3:

#include
class A
{
public:
A(int m=0)
{
x=m;
cout <<"object A"< }
~A()
{
cout<<"object A"< }
private:
int x;
};

class B
{
public:
B(int m)
{
x=m;
cout<<"object B"< }
~B()
{
cout<<"object B"< }
private:
int x;
A a;
};
void main()
{
B b1(2);

cout<<"function main end "<}

回答4:

还是自己看书好~!