C++类的应用和构造函数的调用

矩形的周长面积

  1. 定义一个矩形类Rec,包含私有属性length、width,包含公有成员方法:
    1. void set_length(int l); //设置长度
    2. void set_width(int w); //设置宽度
    3. int get_length(); //获取长度,将长度的值返回给调用处
    4. int get_width(); //获取宽度,将宽度的值返回给调用处
    5. void show(); //输出周长和面积

代码

cpp 复制代码
#include <iostream>

using namespace std;

class Rec
{
    const int length;
    int width;
public:
    void set_length(int l);
    void set_width(int w);
    int get_length();
    int get_width();
    void show();
    Rec():length(3),width(4)
    {
        cout<<"无参:"<<endl;
        cout <<"C:"<<2*(length+width)<<endl;
        cout <<"S:"<<length*width<<endl;
    }
    Rec(int width):length(5)
    {
        cout <<"有参"<<endl;
        cout <<"C:"<<2*(length+width)<<endl;
        cout <<"S:"<<length*width<<endl;
    }
};

void Rec::set_width(int width)
{
    this->width=width;
}
int Rec::get_length()
{
    return length;
}

int Rec::get_width()
{

    return width;
}

void Rec::show()
{
    cout <<"C:"<<2*(length+width)<<endl;
    cout <<"S:"<<length*width<<endl;

}
int main()
{
    Rec r1;
    Rec r2(4);
    r2.set_width(6);
    r2.show();
    return 0;
}

实现效果

圆的参数

  1. 定义一个圆类,包含私有属性半径r,公有成员方法:
    1. void set_r(int r); //获取半径
    2. void show //输出周长和面积,show函数中需要一个提供圆周率的参数PI,该参数有默认值3.14

代码

cpp 复制代码
#include <iostream>

using namespace std;

class yuan
{
    int &r;
public:
    void set_r(int r);
    void show();
    yuan(int &r):r(r){
        cout <<"C="<<2*3.14*(float)r<<endl;
        cout <<"S="<<3.14*(float)r*(float)r<<endl;
    }
};

void yuan::set_r(int r)
{
    this->r=r;
}

void yuan::show()
{
    cout <<"C="<<2*3.14*(float)r<<endl;
    cout <<"S="<<3.14*(float)r*(float)r<<endl;
}

int main()
{
    int R=7;
    yuan r1(R);
    return 0;
}

实现效果

汽车的品类

  1. 定义一个Car类,包含私有属性,颜色color,品牌brand,速度speed,包含公有成员方法:
    1. void display(); //显示汽车的品牌,颜色和速度
    2. void acc(int a); //加速汽车
    3. set函数,设置类中的私有属性

代码

cpp 复制代码
#include <iostream>
#include <iomanip>

using namespace std;

class Car
{
    string cloor;
    string ip;
    int speed;
public:
    void display();
    void acc(int a);
    void set_look(string c,string i,int s);
    Car():cloor("black"),ip("别克"),speed(350)
    {
        cout <<"无参的构造函数:"<<endl;
        cout <<"颜色:"<<setw(8)<<left<<cloor<<"品牌:"<<setw(8)<<left<<ip<<"速度:"<<setw(8)<<left<<speed<<endl;
    }
    Car(string cloor,string ip,int speed)
    {
        this->cloor=cloor;
        this->ip=ip;
        this->speed=speed;
        cout <<"有参的构造函数"<<endl;
        cout <<"颜色:"<<setw(8)<<left<<cloor<<"品牌:"<<setw(8)<<left<<ip<<"速度:"<<setw(8)<<left<<speed<<endl;
    }
};

void Car::display()
{
        cout <<"颜色:"<<setw(8)<<left<<cloor<<"品牌:"<<setw(8)<<left<<ip<<"速度:"<<setw(8)<<left<<speed<<endl;
}
void Car::acc(int a)
{
    speed+=a;
}
void Car::set_look(string cloor,string ip,int speed)
{
    this->cloor = cloor;
    this->ip = ip;
    this->speed=speed;
}

int main()
{
    Car bieke;
    Car penz("white","BWM",400);
    penz.set_look("red","benz",360);
    penz.acc(100);
    penz.display();
    return 0;
}

实现效果

知识点思维导图

相关推荐
郝学胜-神的一滴12 小时前
Qt实现圆角窗口的两种方案详解
开发语言·c++·qt·程序人生
CSDN_RTKLIB12 小时前
【std::vector】size、capacity小结
c++·stl
superman超哥12 小时前
Iterator Trait 的核心方法:深入理解与实践
开发语言·后端·rust·iterator trait·trait核心方法
冰暮流星12 小时前
javascript短路运算
开发语言·前端·javascript
kylezhao201912 小时前
在C#中实现异步通信
开发语言·c#
wjhx12 小时前
为嵌入式重新编译QT的问题
qt
散峰而望12 小时前
【算法竞赛】链表和 list
数据结构·c++·算法·链表·list·哈希算法·推荐算法
05大叔12 小时前
大事件Day01
java·开发语言
Legendary_00812 小时前
从DC接口改成Type-C:LDR6328芯片助力传统设备升级快充体验
c语言·开发语言
至为芯12 小时前
IP5385至为芯支持C口双向快充的30W到100W移动电源方案芯片
c语言·开发语言