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;
}

实现效果

知识点思维导图

相关推荐
weixin_462446235 分钟前
EasyExcel 动态修改模板 Sheet 名称:自定义 SheetWriteHandler 拦截器
java·开发语言·easyexcel
汉克老师8 分钟前
CCF-NOI2025第二试题目与解析(第二题、集合(set))
c++·算法·noi·子集卷积·sos dp·mod 异常
kupeThinkPoem16 分钟前
Qt中addSpacing参数为0的作用
qt
绝世唐门三哥22 分钟前
使用Intersection Observer js实现超出视口固定底部按钮
开发语言·前端·javascript
Ayu阿予31 分钟前
C++从源文件到可执行文件的过程
开发语言·c++
C++业余爱好者32 分钟前
JVM优化入门指南:JVM垃圾收集器(GC)介绍
java·开发语言·jvm
福尔摩斯张33 分钟前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp
Trouvaille ~37 分钟前
【Java篇】基石与蓝图::Object 类与抽象类的双重奏
java·开发语言·javase·抽象类·类与对象·基础入门·object类
hkNaruto38 分钟前
【规范】Linux平台C/C++程序版本发布调试规范手册 兼容银河麒麟
linux·c语言·c++
卜锦元39 分钟前
Golang中make()和new()的区别与作用?
开发语言·后端·golang