问:Class有什么用?


Class的具体用法

作用

哇,小原癖!

解决方案

虽然我也不会,但是给你找了一点,总结如下

C++中的类(Class)是面向对象编程(OOP)的一个重要概念,用于封装数据和功能。类允许开发者创建自定义数据类型,并通过该类定义的功能与数据进行交互。类通过封装、继承和多态等特性,使得程序更具可维护性和可扩展性。

1. 类的基本结构

一个简单的类定义通常包括以下几个部分:

  • 类名
  • 成员变量(属性)
  • 成员函数(方法)

以下是一个简单的类的示例:

#include <iostream>
#include <string>

class Dog {
public:
    // 成员变量
    std::string name;
    int age;

    // 构造函数
    Dog(std::string dogName, int dogAge) {
        name = dogName;
        age = dogAge;
    }

    // 成员函数
    void bark() {
        std::cout << name << " says Woof!" << std::endl;
    }
};

int main() {
    // 创建对象
    Dog myDog("Buddy", 3);
    myDog.bark(); // 调用成员函数
    std::cout << "My dog's age is: " << myDog.age << std::endl; // 访问属性
    return 0;
}

2. 类的主要组成部分

2.1 构造函数和析构函数

  • 构造函数:用于初始化对象。构造函数与类同名,没有返回值。
  • 析构函数:用于清理对象在被销毁时所占用的资源。析构函数的名称前加“~”。
class Sample {
public:
    Sample() { // 构造函数
        std::cout << "Object created." << std::endl;
    }
    ~Sample() { // 析构函数
        std::cout << "Object destroyed." << std::endl;
    }
};

2.2 访问控制

C++中的类支持三种访问控制修饰符:

  • public:公众的,表示成员可以被任何地方访问。
  • protected:保护的,表示成员只能被继承类和同一类访问。
  • private:私有的,表示成员只能在定义该类的内部访问。
class Example {
private:
    int data; // 只能被Example类访问

public:
    void setData(int d) {
        data = d; // 通过公有函数访问私有成员
    }

    int getData() {
        return data;
    }
};

2.3 成员函数

类中的函数称为成员函数,可以访问类的成员变量。成员函数通常用于操作对象的状态。

class Rectangle {
public:
    int width, height;

    int area() {
        return width * height; // 计算矩形面积
    }
};

3. 继承

C++支持类的继承,可以在一个类中继承另一个类的属性和方法。通过继承,可以实现代码的重用。

class Animal {
public:
    void eat() {
        std::cout << "Eating..." << std::endl;
    }
};

class Dog : public Animal { // Dog类继承Animal类
public:
    void bark() {
        std::cout << "Woof!" << std::endl;
    }
};

int main() {
    Dog myDog;
    myDog.eat(); // 调用基类的方法
    myDog.bark(); // 调用子类的方法
    return 0;
}

4. 多态

C++支持多态性,允许以统一的接口来处理不同类的对象。使用基类指针或引用进行动态绑定,可以实现运行时多态。

class Base {
public:
    virtual void show() { // 虚函数
        std::cout << "Base class show function." << std::endl;
    }
};

class Derived : public Base {
public:
    void show() override { // 重写基类的虚函数
        std::cout << "Derived class show function." << std::endl;
    }
};

void display(Base* b) { // 使用基类指针
    b->show(); // 动态调用
}

int main() {
    Base base;
    Derived derived;

    display(&base); // 调用基类方法
    display(&derived); // 调用派生类方法
    return 0;
}

这码风一眼chat GPT

e
怎么说呢,我平常码风就这样,还有,chatGPT买不起(悲

我从未见过码风如此鬼畜之人

哈哈,我打代码喜欢打空格,最近不想写using namespace std。。。

我建议你说真话

真的,chat GPT买不起

但是能免费试用的(doge



chat GPT码风用过就能一眼看出来的,我不多说了