c++初步学习
深入了解 C++:从基础到进阶
C++ 是一门广泛应用的编程语言,被用于系统软件、游戏开发、嵌入式系统、实时系统等领域。自 1983 年由 Bjarne Stroustrup 首次发布以来,C++ 已经经历了多个版本的迭代。它融合了面向过程编程和面向对象编程的特点,并通过引入模板和泛型编程等特性,为开发者提供了极大的灵活性和高效性。
在本文中,我们将简要介绍 C++ 的基础知识、语法特点及一些常见概念,希望能够帮助你更好地理解这门强大的编程语言。
1. C++ 基础语法
1.1 数据类型
C++ 提供了丰富的数据类型,包括基本数据类型和用户自定义数据类型。常见的基本数据类型包括:
整数类型:int、short、long、long long
浮点数类型:float、double
字符类型:char
布尔类型:bool
空类型:void
此外,C++ 允许我们使用 typedef 或 using 来创建类型别名,简化代码。
1.2 变量声明与初始化
在 C++ 中,变量声明和初始化通常如下所示:
int age = 25;
float pi = 3.14f;
char grade = 'A';
需要注意的是,C++ 是强类型语言,变量的类型在声明时必须明确指定。
1.3 控制结构
C++ 的控制结构与其他编程语言类似,主要包括条件语句和循环语句。
条件语句
if (age >= 18) {
cout << "Adult" << endl;
} else {
cout << "Minor" << endl;
}
循环语句
C++ 支持 for、while 和 do-while 循环。示例如下:
for (int i = 0; i < 10; i++) {
cout << i << endl;
}
2. 面向对象编程(OOP)
C++ 是一门面向对象的编程语言,支持封装、继承和多态等核心特性。
2.1 类与对象
C++ 中的类用于定义一种数据类型,包含数据成员和成员函数。类的实例被称为对象。以下是一个简单的类定义:
class Person {
public:
string name;
int age;
void greet() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
在 main 函数中创建对象并调用成员函数:
int main() {
Person p1;
p1.name = "John";
p1.age = 30;
p1.greet();
return 0;
}
2.2 构造函数与析构函数
构造函数是一个特殊的成员函数,在创建对象时自动调用。析构函数则在对象销毁时自动调用,用于清理资源。
class Person {
public:
string name;
int age;
// 构造函数
Person(string n, int a) : name(n), age(a) {}
// 析构函数
~Person() {
cout << "Destructor called for " << name << endl;
}
};
2.3 继承与多态
C++ 支持类之间的继承,使得子类可以继承父类的属性和方法,从而实现代码的重用。
class Animal {
public:
virtual void sound() {
cout << "Animal sound" << endl;
}
};
class Dog : public Animal {
public:
void sound() override {
cout << "Bark" << endl;
}
};
通过虚函数(virtual)和函数重写(override),C++ 支持多态特性,使得程序可以根据实际对象类型调用正确的函数。
3. C++ 高级特性
3.1 模板
C++ 中的模板(Template)是实现泛型编程的重要特性。模板使得你可以编写与类型无关的代码,从而提高代码的重用性。
函数模板
template <typename T>
T add(T a, T b) {
return a + b;
}
类模板
template <typename T>
class Box {
public:
T value;
Box(T v) : value(v) {}
T getValue() {
return value;
}
};
3.2 智能指针
C++11 引入了智能指针,以便更安全地管理动态分配的内存。常见的智能指针有 unique_ptr、shared_ptr 和 weak_ptr。
#include <memory>
int main() {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
cout << *ptr << endl;
// 无需手动删除指针,智能指针会在作用域结束时自动释放内存
return 0;
}
3.3 Lambda 表达式
Lambda 表达式是 C++11 引入的一个强大特性,可以创建匿名函数。它使得函数对象的使用更加灵活和简洁。
auto sum = [](int a, int b) {
return a + b;
};
cout << sum(3, 4) << endl; // 输出 7
3.4 异常处理
C++ 提供了异常处理机制,通过 try、catch 和 throw 语句,程序可以捕获和处理运行时的异常。
try {
int result = 10 / 0;
} catch (const exception& e) {
cout << "Exception: " << e.what() << endl;
}
更多推荐



所有评论(0)