📄 514.cpp
字号:
// 514.cpp DEMO 匿名对象和强制转换
#include <iostream>
class P
{
int x,y;
public:
P(){ cout << "构造函数0\n" ;x = 0; y = 0 ;}
P(int a,int b=0)
{ cout << "构造函数1\n" ;x = a; y= b; }
void Disp()const
{ cout << x << " " << y << endl;}
~P() {cout << "析构函数\n" ;}
};
void fn(P r);//parameter as value
void main()
{
P p1(10,-10);
fn(p1);
fn(2);
fn(P());
fn(P(30,-30));
//fn(1,2); error
}
void fn(P r)
{ r.Disp(); }
/*
(1)程序运行的结果:
构造函数1
10 -10
析构函数
构造函数1
2 0
析构函数
构造函数0
0 0
析构函数
构造函数1
30 -30
析构函数
析构函数
(2)main()中调用fn(),使用了匿名对象的是
fn(2);
fn(P());
fn(P(30,-30));
实现了强制转换的是fn(2);
(3)main()中fn(1,2)是错误的调用,因为该函数调用的参数个数是2个,没有定义这样的函数所以是错误的。
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -