指针形参1,引用形参2,对象形参3区别
来源:互联网 发布:js函数给全局变量赋值 编辑:程序博客网 时间:2024/04/29 08:42
#include <iostream>
using namespace std;
/*主要练习(1)构造函数初始赋值,
(2)对象指针做形参时,要求调用函数的实参是对象的地址值,如add(&A)传递的就是A的地址,而add函数的定义就是指针做形参
(3)对象引用做形参时,要求实参是对象本身,如sub(A),而定义的是sub(&A)
第2种其实就相当于直接传递对象即可如sub(&A) 和squr(A)的效果一样*/
class Calculator
{
double a;//我们设置a不是public,而是默认的private,则必须使用A.Geta()来获取a的值
public:
double b;//如果此处没有定义a,b是public的,则必须提供get函数来使外部能够访问,就必须java中的set,get方法,
Calculator(){a=0.0;b=0.0;}; //构造函数初始赋值,必须是public的,否则不能实例化
void GetA();
void GetAB();
double Geta(){return a;}
};
void Calculator::GetA()
{
cout<<"请输入要开平方的数"<<endl;
cin>>a;
}
void Calculator::GetAB()
{
cout<<"请输入第一个数"<<endl;
cin>>a;
cout<<"请输入第二个数"<<endl;
cin>>b;
}
double add(Calculator *A)//第一种哦
{
return A->Geta() + A->b;
}
double sub(Calculator &A)//第二种哦,和第三种用法一样,调用时都是对象本身作为实参即可
{
return A.Geta()-A.b;
}
double squr(Calculator A)//第三种哦
{
return sqrt(A.Geta());
}
void main()
{
int n;
Calculator A ;//如果构造函数没有说明是public的,则此处会报错
cout<<"欢迎使用计算器"<<endl;
cout<<"1:加法"<<endl;
cout<<"2:减法"<<endl;
cout<<"3:开平方"<<endl;
cout<<"请选择"<<endl;
cin>>n;
switch(n)
{
case 1:
A.GetAB();
cout<<add(&A)<<endl;
break;
case 2:
A.GetAB();
cout<<sub(A)<<endl;
break;
case 3:
A.GetA();
cout<<squr(A)<<endl;
break;
}
system("Pause");
}
- 指针形参1,引用形参2,对象形参3区别
- 非引用形参包括普通对象形参和指针对象形参
- 引用和指针作为形参的区别
- 指针和引用作为形参传递下去的区别
- fstream流对象形参时出现的错误问题(codeblocks+gcc)
- & 引用形参 与 指针
- 引用形参 指针形参
- 指针形参与引用形参
- 函数形参(非引用,指针,引用)
- 函数形参 原型、指针、引用、
- 形参为指针和指针的引用之差别
- 指针形参和传递指向指针的引用
- 函数的形参传递方式:值传递,指针传递,引用传递的区别
- 指针与引用(函数形参的值传递,引用传递,指针传递)
- 引用,引用形参,指针形参与指向指针的引用形参,内存泄露及free相关
- 函数指针传参和引用传参的区别
- 引用、指针和指向指针的指针在函数形参中的应用
- 引用形参和指针形参的比较
- improved mergesort
- dedecms5.7商城系统无需登录注册即可订单购买程序修改
- gredview 数据绑定
- 敏捷开发智慧敏捷系列之二:写不写文档? .
- SQL2005自带扩展函数对字符串进行MD5加密
- 指针形参1,引用形参2,对象形参3区别
- hdoj 1234(结构体排序)
- Change Log for Joomsport: [VIEW] 成績龍虎榜(Ranking List) SQL Programming
- GPU编程资源链接
- 三极管参数大全
- Ogre1.7.2 + CEGUI0.7.5配置
- 笔试面试总结(开题篇)
- 使用事务和SqlBulkCopy导入大批量数据
- modbus3-关于Modicon Modbus Protocol和modscan32