自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++ 八種常見類類型

開發(fā)
大部分面向?qū)ο箝_發(fā)工作中都應(yīng)用了以下部分或者全部的基本類別的類,每種都有其特定的用途和特征。

大部分面向?qū)ο箝_發(fā)工作中都應(yīng)用了以下部分或者全部的基本類別的類,每種都有其特定的用途和特征。

1.具體類 (Concrete Class)

我們可以創(chuàng)建一個(gè)具體類來表示汽車。具體類Car可能會(huì)包含成員變量如brand(品牌)、model(型號(hào))和成員函數(shù)如start()(啟動(dòng))、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)

我們可以創(chuàng)建一個(gè)抽象類Shape來表示形狀,其中包含一個(gè)純虛函數(shù)calculateArea()用于計(jì)算面積。

#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.節(jié)點(diǎn)類 (Node Class)

節(jié)點(diǎn)類可以用于實(shí)現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)。以下是一個(gè)簡(jiǎn)單的節(jié)點(diǎn)類的示例。

#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)

支持類可以包含一些輔助函數(shù),例如數(shù)學(xué)計(jì)算。以下是一個(gè)支持類的示例,用于計(jì)算階乘。

#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)

域類用于表示特定領(lǐng)域中的實(shí)體或概念。例如,我們可以創(chuàng)建一個(gè)域類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.應(yīng)用類 (Utility Class)

應(yīng)用類可以提供一組通用的功能或工具函數(shù)。以下是一個(gè)簡(jiǎn)單的應(yīng)用類StringUtils,用于反轉(zhuǎn)字符串。

#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)

集合和容器類用于存儲(chǔ)和管理多個(gè)元素的集合。例如,std::vector是C++標(biāo)準(zhǔn)庫(kù)中的一個(gè)容器類,用于存儲(chǔ)動(dòng)態(tài)數(shù)組。

#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;
}
責(zé)任編輯:趙寧寧 來源: AI讓生活更美好
相關(guān)推薦

2011-07-14 17:45:06

CC++

2021-08-02 10:46:02

云計(jì)算用途

2010-02-01 10:22:51

C++數(shù)據(jù)指針

2010-01-28 13:45:06

C++數(shù)組

2024-02-20 14:55:51

2010-01-28 16:31:54

C++類型

2024-04-03 12:30:00

C++開發(fā)

2024-05-21 14:04:16

2010-01-21 13:33:44

C++基類

2021-10-19 14:04:28

C++類型數(shù)字

2011-03-14 10:46:03

2020-12-29 10:28:29

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IoT

2010-10-13 15:33:38

MySQL日志

2010-01-28 13:27:12

C++類定義

2024-02-21 14:55:19

C++語言編程

2010-01-15 18:35:25

C++的類

2010-01-20 09:54:27

C++數(shù)據(jù)類型

2023-10-28 16:25:17

濾波C++

2020-04-01 10:48:28

業(yè)務(wù)設(shè)計(jì)架構(gòu)模型CIO

2023-06-05 07:14:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)