N***m 发帖数: 4460 | 1 我在学c++,我不理解下面这段程序的输出。请指教!
程序输出和问题在最后。
#include
using namespace std;
class CVector{
int x,y;
public:
static int n;
CVector();
CVector(int,int);
~CVector(){n--;cout<<"destruction ("<
CVector operator + (CVector b);
};
int CVector::n=0;
CVector::CVector()
{
x=0;
y=0;
n++;
cout<<"default construction ("<
}
CVec |
r****t 发帖数: 10904 | 2 俺没学过,不过本版考古应该很多,这个是猜的:
t
t
b1
c
【在 N***m 的大作中提到】 : 我在学c++,我不理解下面这段程序的输出。请指教! : 程序输出和问题在最后。 : #include : using namespace std; : class CVector{ : int x,y; : public: : static int n; : CVector(); : CVector(int,int);
|
r****t 发帖数: 10904 | 3 不知道 destruction (5:2) 是怎么回事???
【在 r****t 的大作中提到】 : 俺没学过,不过本版考古应该很多,这个是猜的: : t : t : b1 : c
|
l******e 发帖数: 12192 | 4 哪个?第一个是b1,第二个是b
【在 r****t 的大作中提到】 : 不知道 destruction (5:2) 是怎么回事???
|
X****r 发帖数: 3557 | 5 operator+的参数b1,你自己不是已经说了吗。b1是从b copy construct来的。
【在 r****t 的大作中提到】 : 不知道 destruction (5:2) 是怎么回事???
|
l******e 发帖数: 12192 | 6 peng
【在 X****r 的大作中提到】 : operator+的参数b1,你自己不是已经说了吗。b1是从b copy construct来的。
|
r****t 发帖数: 10904 | 7
俺是蒙的,就等你指点这句“copy construct" 了,hehe.
【在 X****r 的大作中提到】 : operator+的参数b1,你自己不是已经说了吗。b1是从b copy construct来的。
|
N***m 发帖数: 4460 | 8 豁然开朗阿!
多谢各位牛牛!
【在 X****r 的大作中提到】 : operator+的参数b1,你自己不是已经说了吗。b1是从b copy construct来的。
|
l**a 发帖数: 43 | 9 貌似输出有问题,输出b.n之前应该还有一个destruction <15:4>, 来自assignment op
erator的返回
【在 N***m 的大作中提到】 : 我在学c++,我不理解下面这段程序的输出。请指教! : 程序输出和问题在最后。 : #include : using namespace std; : class CVector{ : int x,y; : public: : static int n; : CVector(); : CVector(int,int);
|
r****t 发帖数: 10904 | 10 are you sure? speaking of some specific compiler?
op
【在 l**a 的大作中提到】 : 貌似输出有问题,输出b.n之前应该还有一个destruction <15:4>, 来自assignment op : erator的返回
|
N***m 发帖数: 4460 | 11 I just copy/paste, not sure what is happening in your compiler.
op
【在 l**a 的大作中提到】 : 貌似输出有问题,输出b.n之前应该还有一个destruction <15:4>, 来自assignment op : erator的返回
|
X****r 发帖数: 3557 | 12 The implicitly-declared copy assignment operator for a class X
will have the form X& X::operator=(const X&)
Since it returns a reference, destructor won't be called on
its return value.
op
【在 l**a 的大作中提到】 : 貌似输出有问题,输出b.n之前应该还有一个destruction <15:4>, 来自assignment op : erator的返回
|
l**a 发帖数: 43 | 13 it's compiler dependent, in VS, destructor is called ..
【在 X****r 的大作中提到】 : The implicitly-declared copy assignment operator for a class X : will have the form X& X::operator=(const X&) : Since it returns a reference, destructor won't be called on : its return value. : : op
|