服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++ 八种常见类类型

C++ 八种常见类类型

2024-04-02 14:29AI让生活更美好 C/C++

大部分面向对象开发工作中都应用了以下部分或者全部的基本类别的类,每种都有其特定的用途和特征。 1.具体类 (Concrete Class) 我们可以创建一个具体类来表示汽车。具体类Car可能会包含成员变量如brand(品牌)、model(型号)和成

大部分面向对象开发工作中都应用了以下部分或者全部的基本类别的类,每种都有其特定的用途和特征。

C++ 八种常见类类型

1.具体类 (Concrete Class)

我们可以创建一个具体类来表示汽车。具体类Car可能会包含成员变量如brand(品牌)、model(型号)和成员函数如start()(启动)、accelerate()(加速)等。

#include <iostream>
#include <string>

class Car {
private:
    std::string brand;
    std::string model;
public:
    Car(std::string brand, std::string model) : brand(brand), model(model) {}

    void start() {
        std::cout << "Starting the " << brand << " " << model << "...\n";
    }

    void accelerate() {
        std::cout << "Accelerating the " << brand << " " << model << "...\n";
    }
};

int main() {
    Car myCar("Toyota", "Camry");
    myCar.start();
    myCar.accelerate();
    return 0;
}

2.抽象类 (Abstract Class)

我们可以创建一个抽象类Shape来表示形状,其中包含一个纯虚函数calculateArea()用于计算面积。

#include <iostream>

class Shape {
public:
    virtual double calculateArea() const = 0;
};

class Circle : public Shape {
private:
    double radius;
public:
    Circle(double radius) : radius(radius) {}

    double calculateArea() const override {
        return 3.14 * radius * radius;
    }
};

int main() {
    Circle circle(5);
    std::cout << "Area of the circle: " << circle.calculateArea() << std::endl;
    return 0;
}

3.接口类 (Interface Class)

接口类可以用来定义一组接口,例如Drawable接口可以定义绘制图形的方法。

#include <iostream>

class Drawable {
public:
    virtual void draw() const = 0;
};

class Circle : public Drawable {
public:
    void draw() const override {
        std::cout << "Drawing a circle\n";
    }
};

int main() {
    Circle circle;
    circle.draw();
    return 0;
}

4.节点类 (Node Class)

节点类可以用于实现链表数据结构。以下是一个简单的节点类的示例。

#include <iostream>

template<typename T>
class Node {
public:
    T data;
    Node<T>* next;

    Node(T data) : data(data), next(nullptr) {}
};

int main() {
    Node<int>* node1 = new Node<int>(1);
    Node<int>* node2 = new Node<int>(2);
    node1->next = node2;

    std::cout << "Node 1 data: " << node1->data << std::endl;
    std::cout << "Node 2 data: " << node1->next->data << std::endl;

    delete node1;
    delete node2;
    return 0;
}

5.支持类 (Support Class)

支持类可以包含一些辅助函数,例如数学计算。以下是一个支持类的示例,用于计算阶乘。

#include <iostream>

class MathUtils {
public:
    static int factorial(int n) {
        if (n == 0)
            return 1;
        return n * factorial(n - 1);
    }
};

int main() {
    int result = MathUtils::factorial(5);
    std::cout << "Factorial of 5: " << result << std::endl;
    return 0;
}

6.域类 (Domain Class)

域类用于表示特定领域中的实体或概念。例如,我们可以创建一个域类Employee来表示公司中的雇员。

#include <iostream>
#include <string>

class Employee {
private:
    std::string name;
    int employeeId;
public:
    Employee(std::string name, int employeeId) : name(name), employeeId(employeeId) {}

    void display() const {
        std::cout << "Name: " << name << ", Employee ID: " << employeeId << std::endl;
    }
};

int main() {
    Employee emp("John Doe", 12345);
    emp.display();
    return 0;
}

7.应用类 (Utility Class)

应用类可以提供一组通用的功能或工具函数。以下是一个简单的应用类StringUtils,用于反转字符串。

#include <iostream>
#include <string>

class StringUtils {
public:
    static std::string reverseString(const std::string& str) {
        std::string reversedStr = str;
        std::reverse(reversedStr.begin(), reversedStr.end());
        return reversedStr;
    }
};

int main() {
    std::string original = "hello";
    std::string reversed = StringUtils::reverseString(original);
    std::cout << "Reversed string: " << reversed << std::endl;
    return 0;
}

8.集合和容器类 (Collection and Container Class)

集合和容器类用于存储和管理多个元素的集合。例如,std::vector是C++标准库中的一个容器类,用于存储动态数组。

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    std::cout << "Elements in the vector:";
    for (int num : numbers) {
        std::cout << " " << num;
    }
    std::cout << std::endl;
    return 0;
}

原文地址:https://mp.weixin.qq.com/s?__biz=MzkwMDQxNjE4OA==&mid=2247491775&idx=2&sn=2fe67e8906ee79bff8a912150737090a

延伸 · 阅读

精彩推荐
  • C/C++C语言的动态内存管理你了解吗

    C语言的动态内存管理你了解吗

    这篇文章主要为大家详细介绍了C语言的动态内存管理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给...

    和太阳肩并肩的老杨8042022-11-01
  • C/C++C/C++中多态性详解及其作用介绍

    C/C++中多态性详解及其作用介绍

    这篇文章主要介绍了C/C++中多态性(polymorphism)详解及其作用介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可...

    我是小白呀8002021-12-29
  • C/C++C++中关键字Struct和Class的区别

    C++中关键字Struct和Class的区别

    这篇文章主要介绍了C++中关键字Struct和Class的区别,本文用大量实例讲解了Struct和Class的区别,需要的朋友可以参考下...

    果冻想10992021-02-04
  • C/C++使用C语言求N的阶乘的方法

    使用C语言求N的阶乘的方法

    这篇文章主要介绍了使用C语言求N的阶乘的方法,包括一道相关的ACM题目示例,需要的朋友可以参考下...

    低调小一4132021-03-06
  • C/C++介绍C语言程序中的注释等辅助语句如何使用

    介绍C语言程序中的注释等辅助语句如何使用

    C语言中分为单行注释和多行注释:单行注释 以 // 开始的这一行文本,可能不被编译器所支持;多行注释从 /* 到 */之间的所有文本,不支持嵌套,下面让我...

    清风自在 流水潺潺6122022-11-13
  • C/C++C++用winapi socket实现局域网语音通话功能

    C++用winapi socket实现局域网语音通话功能

    这篇文章主要介绍了socket实现局域网语音通话 c++ winapi,功能介绍支持录音设备查找以及播放设备查找,支持局域网语音通话,通话包含语音来电提醒和挂断...

    治治棒棒哒5622022-12-29
  • C/C++C语言的变量与常量 字符字符串与转义字符详解

    C语言的变量与常量 字符字符串与转义字符详解

    这篇文章主要介绍了详解C语言的变量与常量 字符字符串与转义字符,包括其之间的区别是C语言入门学习中的基础知识,需要的朋友可以参考下...

    HAORANCHIDOUZI6032022-01-24
  • C/C++详解C++句柄类

    详解C++句柄类

    本篇文章给大家详细分析了C++句柄类的相关知识点,对此有需要的朋友跟着学习参考下吧。...

    lzm_cn5712021-06-26