C++篇:启航——初识C++(下篇)

目录

  1. 引言
  2. C++基本语法
  3. 函数
  4. 面向对象编程基础
  5. 继承与多态
  6. 标准模板库(STL)
  7. 案例分析
  8. 总结

引言

在前篇中,我们对C++语言的起源、基本概念及其重要性有了初步的了解。本篇将深入探索C++的基本语法、函数、面向对象编程等核心内容,并通过实际案例进一步巩固这些知识点。

C++基本语法

数据类型

C++提供了丰富的数据类型,主要可以分为以下几类:

  • 基本数据类型

    • 整数类型:int, short, long, long long
    • 浮点类型:float, double, long double
    • 字符型:char
    • 布尔型:bool
  • 复合数据类型

    • 数组:用于存储相同类型的多个元素。
    • 结构体:用于组合不同类型的数据。
    • 联合体:用于节省内存,可以存储不同类型的数据,但每次只能用一个。

示例代码

cppCopy Code
#include <iostream> using namespace std; int main() { int age = 25; float height = 5.9; char initial = 'A'; bool isStudent = true; cout << "Age: " << age << endl; cout << "Height: " << height << endl; cout << "Initial: " << initial << endl; cout << "Is Student: " << (isStudent ? "Yes" : "No") << endl; return 0; }

控制结构

C++的控制结构包括条件语句和循环语句。

  • 条件语句if, else if, else, switch
  • 循环语句for, while, do...while

示例代码

cppCopy Code
#include <iostream> using namespace std; int main() { int number; cout << "Enter a number: "; cin >> number; // 使用if语句判断 if (number > 0) { cout << "The number is positive." << endl; } else if (number < 0) { cout << "The number is negative." << endl; } else { cout << "The number is zero." << endl; } // 使用for循环 cout << "Counting from 1 to 5:" << endl; for (int i = 1; i <= 5; i++) { cout << i << " "; } cout << endl; return 0; }

函数

函数的定义与调用

函数是C++的基本构建块,它允许我们将代码组织成可重用的模块。函数的定义包括返回类型、函数名、参数列表和函数体。

示例代码

cppCopy Code
#include <iostream> using namespace std; // 函数声明 int add(int a, int b); int main() { int x = 10, y = 20; int sum = add(x, y); cout << "Sum: " << sum << endl; return 0; } // 函数定义 int add(int a, int b) { return a + b; }

递归函数

递归函数是直接或间接调用自身的函数,适用于解决某些特定问题,如阶乘计算、斐波那契数列等。

示例代码

cppCopy Code
#include <iostream> using namespace std; // 递归函数定义 int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); } int main() { int number; cout << "Enter a number to calculate factorial: "; cin >> number; cout << "Factorial of " << number << " is " << factorial(number) << endl; return 0; }

面向对象编程基础

类与对象

C++是一种面向对象的编程语言,类是对象的蓝图,对象是类的实例。

示例代码

cppCopy Code
#include <iostream> using namespace std; class Dog { public: string name; int age; void bark() { cout << name << " says Woof!" << endl; } }; int main() { Dog myDog; myDog.name = "Buddy"; myDog.age = 3; myDog.bark(); return 0; }

构造函数与析构函数

构造函数是在创建对象时自动调用的特殊成员函数,析构函数在对象销毁时调用。

示例代码

cppCopy Code
#include <iostream> using namespace std; class Car { public: string model; // 构造函数 Car(string m) { model = m; cout << "Car " << model << " created." << endl; } // 析构函数 ~Car() { cout << "Car " << model << " destroyed." << endl; } }; int main() { Car myCar("Toyota"); return 0; }

继承与多态

继承的概念

继承是面向对象编程的一个重要特性,允许一个类派生出另一个类,获得其属性和方法。

示例代码

cppCopy Code
#include <iostream> using namespace std; class Animal { public: void eat() { cout << "Eating..." << endl; } }; class Cat : public Animal { public: void meow() { cout << "Meow!" << endl; } }; int main() { Cat myCat; myCat.eat(); // 继承自Animal myCat.meow(); // Cat自己的方法 return 0; }

多态的实现

多态是指同一操作作用于不同的对象上,可以产生不同的结果。C++支持运行时多态(通过虚函数)。

示例代码

cppCopy Code
#include <iostream> using namespace std; class Base { public: virtual void show() { cout << "Base class show function called." << endl; } }; class Derived : public Base { public: void show() override { cout << "Derived class show function called." << endl; } }; void display(Base* b) { b->show(); } int main() { Base base; Derived derived; display(&base); // 调用Base类的show函数 display(&derived); // 调用Derived类的show函数 return 0; }

标准模板库(STL)

容器

STL提供了一组通用的容器,包括向量(vector)、列表(list)、集合(set)、映射(map)等。

示例代码

cppCopy Code
#include <iostream> #include <vector> using namespace std; int main() { vector<int> numbers = {1, 2, 3, 4, 5}; cout << "Vector elements: "; for (int num : numbers) { cout << num << " "; } cout << endl; return 0; }

算法

STL还提供了各种算法,如排序、查找等,可以直接应用于容器。

示例代码

cppCopy Code
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> numbers = {5, 3, 2, 4, 1}; sort(numbers.begin(), numbers.end()); // 排序 cout << "Sorted elements: "; for (int num : numbers) { cout << num << " "; } cout << endl; return 0; }

案例分析

简单银行管理系统

本案例展示了如何使用C++创建一个简单的银行管理系统,支持账户的创建、存款、取款和查询余额等基本功能。

示例代码

cppCopy Code
#include <iostream> #include <vector> #include <string> using namespace std; class Account { private: string owner; double balance; public: Account(string owner) : owner(owner), balance(0.0) {} void deposit(double amount) { balance += amount; cout << "Deposited: " << amount << ", New balance: " << balance << endl; } void withdraw(double amount) { if (amount > balance) { cout << "Insufficient funds!" << endl; } else { balance -= amount; cout << "Withdrew: " << amount << ", New balance: " << balance << endl; } } void displayBalance() const { cout << "Account Owner: " << owner << ", Balance: " << balance << endl; } }; int main() { vector<Account> accounts; string name; cout << "Enter account owner name: "; cin >> name; Account newAccount(name); accounts.push_back(newAccount); newAccount.deposit(1000); newAccount.withdraw(500); newAccount.displayBalance(); return 0; }

图书管理系统

本案例演示了一个简单的图书管理系统,支持添加图书、借书和还书等功能。

示例代码

cppCopy Code
#include <iostream> #include <vector> #include <string> using namespace std; class Book { private: string title; bool isAvailable; public: Book(string title) : title(title), isAvailable(true) {} void borrow() { if (isAvailable) { isAvailable = false; cout << title << " has been borrowed." << endl; } else { cout << title << " is currently not available." << endl; } } void returnBook() { isAvailable = true; cout << title << " has been returned." << endl; } void displayStatus() const { cout << title << (isAvailable ? " is available." : " is not available.") << endl; } }; int main() { vector<Book> library; library.push_back(Book("C++ Programming")); library.push_back(Book("Data Structures")); // 借书 library[0].borrow(); library[0].displayStatus(); // 还书 library[0].returnBook(); library[0].displayStatus(); return 0; }

总结

通过本篇文章,我们深入学习了C++的基本语法、函数、面向对象编程、继承与多态、标准模板库等核心概念,并通过实际案例进一步理解这些知识点。C++作为一种强大的编程语言,广泛应用于软件开发、游戏开发、系统编程等领域。希望通过这篇文章,能够为读者在C++学习的道路上奠定坚实的基础,为以后的进阶学习打下良好的基础。


以上内容为初步框架与部分示例,完整的5000字详细内容需要扩展每个部分的解释,增加更多的代码示例与详细的注释。