我想知道它运行为啥是这样子的,这个顺序怎么出来的?求给详细点的注释,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 12:09:01
我想知道它运行为啥是这样子的,这个顺序怎么出来的?求给详细点的注释,
#include
using namespace std;
class TPoint
{private:
int X,Y;
public:
\x05TPoint(int x,int y)
\x05{
\x05\x05X=x;
\x05 Y=y;
\x05cout
#include
using namespace std;
class TPoint
{private:
int X,Y;
public:
\x05TPoint(int x,int y)
\x05{
\x05\x05X=x;
\x05 Y=y;
\x05cout
直接从执行结果来看吧,如有不明白的地方再追问:
constructor2035 //TPoint M(20,35);调用普通构造函数TPoint(int x,int y)得到的输出
copy initialization construction called
//TPoint N(M);这句话调用拷贝构造函数TPoint::TPoint(TPoint &p)得到的输出
constructor00//TPoint P(0,0);调用普通构造函数TPoint(int x,int y)得到的输出
至此,程序顺序执行到P=f(N);这里理解起来有点困难,先看一个概念:
在C++中,如果函数的返回值是类的对象,下面三种对象需要调用拷贝构造函数:
1) 一个对象以值传递的方式传入函数体//看f(N),对象N是以值传递的形式作为参数传入函数体
2) 一个对象以值传递的方式从函数返回//看f(N),返回值是TPoint类型
3) 一个对象需要通过另外一个对象进行初始化
copy initialization construction called//执行P=f(N);时,对象N是以值传递的形式作为参数传入函数体
OK//f(N)调用函数f(TPoint Q)得到
constructor3055//同样是f(N)调用函数f(TPoint Q)得到
copy initialization construction called//执行P=f(N);时,返回值是TPoint类型
//上述方式在执行拷贝构造函数的时候,都会生成一个临时对象
destructor called//临时对象R在函数f(TPoint Q)退出时会析构
destructor called//f(N)得到的临时对象析构
destructor called//P=f(N)赋值时得到的临时对象析构
P=3055//cout<<"P="<<P.Xcoord()<<P.Ycoord()<<endl;输出得到
destructor called//对象P析构
destructor called//对象N析构
destructor called//对象M析构
constructor2035 //TPoint M(20,35);调用普通构造函数TPoint(int x,int y)得到的输出
copy initialization construction called
//TPoint N(M);这句话调用拷贝构造函数TPoint::TPoint(TPoint &p)得到的输出
constructor00//TPoint P(0,0);调用普通构造函数TPoint(int x,int y)得到的输出
至此,程序顺序执行到P=f(N);这里理解起来有点困难,先看一个概念:
在C++中,如果函数的返回值是类的对象,下面三种对象需要调用拷贝构造函数:
1) 一个对象以值传递的方式传入函数体//看f(N),对象N是以值传递的形式作为参数传入函数体
2) 一个对象以值传递的方式从函数返回//看f(N),返回值是TPoint类型
3) 一个对象需要通过另外一个对象进行初始化
copy initialization construction called//执行P=f(N);时,对象N是以值传递的形式作为参数传入函数体
OK//f(N)调用函数f(TPoint Q)得到
constructor3055//同样是f(N)调用函数f(TPoint Q)得到
copy initialization construction called//执行P=f(N);时,返回值是TPoint类型
//上述方式在执行拷贝构造函数的时候,都会生成一个临时对象
destructor called//临时对象R在函数f(TPoint Q)退出时会析构
destructor called//f(N)得到的临时对象析构
destructor called//P=f(N)赋值时得到的临时对象析构
P=3055//cout<<"P="<<P.Xcoord()<<P.Ycoord()<<endl;输出得到
destructor called//对象P析构
destructor called//对象N析构
destructor called//对象M析构
我想知道它运行为啥是这样子的,这个顺序怎么出来的?求给详细点的注释,
我想知道地球为啥是圆的
我想知道这个符号怎么弄出来的 找不到
ug拉伸出来不是实体如题,选择的是实体,单拉出来是片体,草图是这样子的:我想知道那个黄色的星号*是什么意思?
求洛神赋赏析,求洛神赋赏析,最好详细点.有很多字不知道发音.带注释的.
我想知道具体怎么推论出来的
求科普,这个是什么?我想知道它的具体名称,
系统命名法求指导我想知道这个是怎么写的,讲通俗点,书本说的我听不懂
六十四卦图的排列顺序我想知道周易的六十四卦哪个卦是首卦,哪个是尾卦.运行的顺序是哪个方向.谢谢
我想知道圆的直径是1米,求它的表面积跟体积,要有详细的计算方法跟公式,
紫金山天文台成立背景越详细越好...我想知道点它成立时的背景故事...
请教弦理论中,弦要在高达十维的空间中才能满足它的运动,我想知道这个十维空间是怎么用数学方程计算出来的?最好给出这个数学方