引入 C++ 语言
1. 介绍 C++ 的历史与特点
C++,全名 C-Plus-Plus,由 Bjarne Stroustrup 开发于 1983 年,是在 C 语言的基础上引入面向对象编程(OOP)概念的产物。它的设计目标是提供一种更现代、强大且易于维护的编程语言。C++ 的关键特点包括:
- 面向对象:支持封装、继承和多态,有助于代码复用和维护。
- 高效性:保留 C 语言的指针操作,实现高性能代码。
- 泛型编程:通过模板技术实现代码复用,针对不同数据类型的通用处理。
- 标准库:提供容器(如 vector、list)、算法(如 sort、find)等,简化开发过程。
2. C++ 与 C 的区别
C++ 相较于 C 语言增添了面向对象编程元素,主要区别如下:
- 继承:支持类的继承,允许创建派生类以继承基类的属性和方法。
- 多态:通过虚函数实现,子类可以覆盖父类的方法,增强代码灵活性。
- 封装:通过私有、公有和保护访问控制,保护数据安全。
- 抽象:使用抽象类和接口定义功能而不提供实现,促进代码重用和模块化。
- 命名空间:解决命名冲突,使代码结构更清晰。
C++ 基础知识
3. 变量与数据类型
C++ 中变量与数据类型是编程基础:
#include <iostream>
using namespace std;
int main() {
int age = 25;
float height = 1.75;
cout << "Age: " << age << endl;
cout << "Height: " << height << endl;
return 0;
}
4. 控制结构
控制程序流程的关键:
#include <iostream>
using namespace std;
int main() {
int i = 1;
if (i > 0) {
cout << "i is positive." << endl;
} else {
cout << "i is not positive." << endl;
}
while (i <= 5) {
cout << "Loop iteration: " << i << endl;
i++;
}
return 0;
}
5. 函数与参数传递
封装复用代码的核心:
#include <iostream>
using namespace std;
void printMessage(const string& message) {
cout << message << endl;
}
int main() {
string greeting = "Hello, World!";
printMessage(greeting);
return 0;
}
指针与内存管理
6. 指针的概念与操作
指针用于存储内存地址:
#include <iostream>
using namespace std;
int main() {
int num = 42;
int* ptr = #
cout << "Value of num: " << num << endl;
cout << "Address of num: " << &num << endl;
cout << "Value of *ptr: " << *ptr << endl;
return 0;
}
7. 动态内存分配
动态分配内存:
#include <iostream>
using namespace std;
int main() {
int* dynamicPtr = new int;
*dynamicPtr = 100;
cout << "Value of dynamicPtr: " << *dynamicPtr << endl;
delete dynamicPtr;
return 0;
}
8. 引用与智能指针
引用与智能指针简化内存管理:
#include <iostream>
using namespace std;
int main() {
int num = 25;
int& ref = num;
ref = 42;
cout << "Value of num: " << num << endl;
return 0;
}
#include <memory>
int main() {
unique_ptr<int> uniquePtr = make_unique<int>(100);
cout << "Value of *uniquePtr: " << *uniquePtr << endl;
return 0;
}
面向对象编程
9. 类与对象
面向对象编程基础:
#include <iostream>
using namespace std;
class Circle {
public:
Circle(int radius) : _radius(radius) {}
double area() const { return 3.14 * _radius * _radius; }
private:
int _radius;
};
int main() {
Circle myCircle(5);
cout << "Area of myCircle: " << myCircle.area() << endl;
return 0;
}
10. 封装、继承与多态
实例演示:
class Animal {
protected:
string name;
public:
Animal(const string& name) : name(name) {}
virtual void speak() const = 0;
};
class Dog : public Animal {
public:
Dog(const string& name) : Animal(name) {}
void speak() const override {
cout << "Woof!" << endl;
}
};
int main() {
Dog myDog("Buddy");
myDog.speak();
return 0;
}
输入输出与文件操作
11. 标准输入输出流
基本输入输出:
#include <iostream>
using namespace std;
int main() {
int age;
cout << "Enter your age: ";
cin >> age;
cout << "Your age is: " << age << endl;
return 0;
}
12. 文件读写操作
完整文件读写:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ofstream file("example.txt");
if (file.is_open()) {
file << "Hello, World!";
file.close();
} else {
cout << "Could not open file" << endl;
}
ifstream inputFile("example.txt");
string line;
if (inputFile.is_open()) {
while (getline(inputFile, line)) {
cout << line << endl;
}
inputFile.close();
} else {
cout << "Could not open file" << endl;
}
return 0;
}
实战项目实践
选择一个简单的 C++ 项目案例
创建一个简单计算器程序:
#include <iostream>
using namespace std;
int main() {
double num1, num2;
char operation;
double result;
cout << "Enter first number: ";
cin >> num1;
cout << "Enter operation (+, -, *, /): ";
cin >> operation;
cout << "Enter second number: ";
cin >> num2;
switch (operation) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0) {
result = num1 / num2;
} else {
cout << "Error: Division by zero" << endl;
return 1;
}
break;
default:
cout << "Invalid operation" << endl;
return 1;
}
cout << "Result: " << result << endl;
return 0;
}
通过以上指南,读者可以系统地构建 C++ 编程技能,并从理论到实践全面掌握这一强大、高效的基础语言。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦