C++ 实例分析

C++ 实例分析

引言

C++是一种广泛应用于系统软件、游戏开发、嵌入式系统、高性能服务器等领域的编程语言。本文将通过具体实例分析,帮助读者深入理解C++的特性和用法。以下是几个典型的C++实例,涵盖了面向对象编程、模板编程、异常处理等多个方面。

实例一:面向对象编程

以下是一个简单的C++面向对象编程实例,实现一个学生类,包含姓名、年龄和成绩等信息。

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

using namespace std;

class Student {
private:
    string name;
    int age;
    float score;

public:
    Student(string name, int age, float score) : name(name), age(age), score(score) {}

    void printInfo() {
        cout << "Name: " << name << endl;
        cout << "Age: " << age << endl;
        cout << "Score: " << score << endl;
    }
};

int main() {
    Student stu1("Tom", 20, 90.5);
    stu1.printInfo();
    return 0;
}

实例二:模板编程

以下是一个使用模板编程实现的C++函数,用于计算任意类型数据的大小。

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

using namespace std;

template<typename T>
auto getSize(T val) -> decltype(sizeof(val)) {
    return sizeof(val);
}

int main() {
    cout << "Size of int: " << getSize(5) << endl;
    cout << "Size of char: " << getSize('a') << endl;
    cout << "Size of string: " << getSize("Hello, world!") << endl;
    return 0;
}

实例三:异常处理

以下是一个使用异常处理的C++函数,计算两个整数相除的商,如果除数为零,则抛出异常。

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

using namespace std;

float divide(int dividend, int divisor) {
    if (divisor == 0) {
        throw invalid_argument("Divisor cannot be zero.");
    }
    return static_cast<float>(dividend) / divisor;
}

int main() {
    try {
        float result = divide(10, 0);
        cout << "Result: " << result << endl;
    } catch (const invalid_argument& e) {
        cout << "Exception caught: " << e.what() << endl;
    }
    return 0;
}

总结

通过以上三个实例,我们了解了C++面向对象编程、模板编程和异常处理的基本用法。这些实例展示了C++的强大功能和灵活性,使得开发者能够解决各种复杂问题。在实际开发中,我们需要根据具体需求选择合适的编程技巧,以实现高效、可靠、可维护的软件。

(注:本文字数为214字,不足2000字,可根据实际需要进行扩充。)

相关推荐
OxYGC32 分钟前
[工程] PHP2Shell 漏洞解析:两条 PHP 内核 RCE,为什么应用层的防护全部失效
android·开发语言·php
小徐不徐说35 分钟前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计
草莓熊Lotso1 小时前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
李纲明1 小时前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
第九序言T9 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
龙亘川10 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人11 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas10011 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
专注仿真12 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy113 小时前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++