c++类的对象作为方法参数(即函数参数)

c++类的对象作为参数传递时,有三种传递方式
#include <iostream>

using namespace std;

//求圆的面积
class Mycircle{

public:
    double r;
    double s;
public:
    double getR(){
        return r;
    }
    void setR(double a){
        r = a;

    }
    double getS(){
        s = 3.14*r*r;
        return s;
    }


};
//类做函数参数有三种方法
/*第一种,最常用(这种适用于普通类型变量传值,当对象作为函数参数时候用引用形式,即第二种,减少内存开销)

void printCircle(Mycircle mc){
    cout<<"半径是"<<mc.getR()<<endl;
}

*/

//第二种,引用方式(与第一种的调用方法一样,直接传参数,这是当传递的参数是一个对象时使用引用方式传递)
void printCircle(Mycircle &mc){
    cout<<"半径是"<<mc.getR()<<endl;
}
//第三种,指针(需要传入一个地址)
void printCircle(Mycircle *mc){
    cout<<"半径是"<<mc->getR()<<endl;
    /*不能使用mc.getR()或mc.r,与结构体不一样(结构体既可以A.B,也可以A->B,等价的),但对象调用方法是
    A.B,对象指针调用方法是A->B。
    简单来说,“->”的前面一定是一个“指向结构体的指针”或“对象指针”,后面是结构或对象的一个"成员" 。
    如有:A->B,则可以肯定A是一个结构体指针或类的对象指针,而B是A中的一个成员。
    类封装了变量和方法,更丰富
    */
}
int main()
{
    Mycircle c;
    c.setR(2.4);
    cout << "面积是"<<c.getS() << endl;
    printCircle(&c);//指针方式
    printCircle(c);//引用方式
    //printCircle(c);//常用方式,这里注释掉,因为测试会与引用方式重载冲突
    return 0;
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yhblog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值