例题5-1 ‘값에 의한 호출’시 매개 변수의 생성자 실행되지 않음

题目

‘값에 의한 호출’시 매개 변수의 생성자 실행되지 않음

#include <iostream>
using namespace std;
class Circle{
private:
    int radius; //初始化 半径(全部的函数都可以使用)
public:
    Circle(); //具体化生成者,且里面没有变量的时候。
    Circle(int r); //具体化生成者,且里面有变量的时候,半径等于r;
    ~Circle();
    double getArea(){ return 3.14*radius*radius;}
    int getRadius(){ return radius;}
    void setRadius(int radius){
        this->radius = radius;}
};

Circle::Circle(){
    radius=1;
    cout <<"点圆生成者实行 radius = " << radius << endl;
}

Circle::Circle(int radius){
    this->radius = radius;
    cout <<"生成者实行 radius = " << radius << endl;
}

Circle::~Circle(){
    cout << "消失者实行 radius = " << radius << '\n';
}

void increase(Circle c){
    int r=c.getRadius();
    c.setRadius(r+1);
}

int main(){
    Circle waffle(30);
    increase(waffle); //将waffle的内容代入到c里面
    cout << waffle.getRadius() << endl;
}

结果图

生成者实行 radius = 30-----waffle 生成
消失者实行 radius = 31 ----c的生成者不生成,c的消灭
30
消失者实行 radius = 30 ----=waffle 消灭者生成

学习记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值