C++入门基础知识
C++是一种通用的、面向对象的编程语言,由Bjarne Stroustrup于1985年在贝尔实验室开发。它是C语言的扩展,增加了面向对象编程的特性。高效性:接近硬件操作面向对象:支持封装、继承和多态通用性:可用于系统/应用软件开发丰富的标准库cpp代码语言:javascript代码运行次数:0运行AI代码解释返回类型 函数名(参数列表) {// 函数体return 返回值;// 如果返回类型不是
. C++简介
C++是一种通用的、面向对象的编程语言,由Bjarne Stroustrup于1985年在贝尔实验室开发。它是C语言的扩展,增加了面向对象编程的特性。
主要特点:
- 高效性:接近硬件操作
- 面向对象:支持封装、继承和多态
- 通用性:可用于系统/应用软件开发
- 丰富的标准库
2. 基本语法结构
Hello World 程序
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <iostream> // 输入输出流头文件
int main() { // 主函数,程序入口
std::cout << "Hello, World!" << std::endl; // 输出语句
return 0; // 返回0表示程序正常结束
}
基本组成部分
- 头文件引入:
#include <iostream>
- 主函数:
int main()
- 命名空间:
std::
(标准命名空间) - 语句结束:分号
;
3. 数据类型
基本数据类型
类型 |
描述 |
大小(字节) |
---|---|---|
int |
整型 |
4 |
float |
单精度浮点型 |
4 |
double |
双精度浮点型 |
8 |
char |
字符型 |
1 |
bool |
布尔型(true/false) |
1 |
void |
无类型 |
- |
类型修饰符
signed
:有符号(默认)unsigned
:无符号short
:短整型long
:长整型
变量声明与初始化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int a = 10; // 声明并初始化
float b(3.14); // 构造函数式初始化
char c{'A'}; // 列表初始化(C++11)
auto d = 5.67; // 自动类型推断(C++11)
4. 运算符
算术运算符
+
, -
, *
, /
, %
(取模), ++
(自增), --
(自减)
关系运算符
==
, !=
, >
, <
, >=
, <=
逻辑运算符
&&
(与), ||
(或), !
(非)
位运算符
&
(按位与), |
(按位或), ^
(按位异或), ~
(按位取反), <<
(左移), >>
(右移)
赋值运算符
=
, +=
, -=
, *=
, /=
, %=
, <<=
, >>=
, &=
, ^=
, |=
5. 控制结构
条件语句
代码语言:javascript
代码运行次数:0
运行
AI代码解释
// if-else
if (condition) {
// 代码块
} else if (another_condition) {
// 代码块
} else {
// 代码块
}
// switch-case
switch (variable) {
case value1:
// 代码块
break;
case value2:
// 代码块
break;
default:
// 代码块
}
循环结构
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
// for循环
for (初始化; 条件; 增量) {
// 代码块
}
// while循环
while (条件) {
// 代码块
}
// do-while循环
do {
// 代码块
} while (条件);
跳转语句
break
:跳出循环或switchcontinue
:跳过当前循环迭代return
:从函数返回goto
:跳转到标签(不推荐使用)
6. 函数
函数定义
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
返回类型 函数名(参数列表) {
// 函数体
return 返回值; // 如果返回类型不是void
}
函数示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int add(int a, int b) {
return a + b;
}
函数特性
- 函数重载:同名函数,不同参数列表
- 默认参数:
void func(int a, int b = 10)
- 内联函数:
inline
关键字 - 递归函数:函数调用自身
7. 数组与字符串
数组
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int arr[5]; // 声明大小为5的整型数组
int arr2[] = {1,2,3}; // 声明并初始化
arr[0] = 10; // 访问第一个元素
字符串
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
char str1[] = "Hello"; // C风格字符串
std::string str2 = "World"; // C++字符串对象
常用字符串操作
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <string>
std::string s = "Hello";
s.length(); // 获取长度
s += " World"; // 字符串连接
s.substr(1,3); // 子字符串
s.find("ell"); // 查找子串
8. 指针与引用
指针
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int var = 20;
int *ptr = &var; // ptr指向var的地址
*ptr = 30; // 通过指针修改变量值
引用
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int var = 20;
int &ref = var; // ref是var的引用
ref = 30; // 修改引用即修改变量
动态内存分配
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
int *p = new int; // 动态分配
*p = 10;
delete p; // 释放内存
int *arr = new int[10]; // 动态数组
delete[] arr; // 释放数组
9. 面向对象编程
类与对象
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
class MyClass { // 类定义
public: // 访问修饰符
int publicVar; // 公有成员变量
void publicFunc() { // 公有成员函数
// 函数体
}
private:
int privateVar; // 私有成员变量
};
MyClass obj; // 创建对象
obj.publicVar = 10; // 访问公有成员
obj.publicFunc(); // 调用公有方法
构造函数与析构函数
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
class MyClass {
public:
MyClass() { // 默认构造函数
// 初始化代码
}
MyClass(int a) { // 参数化构造函数
// 初始化代码
}
~MyClass() { // 析构函数
// 清理代码
}
};
继承
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
class Base {
public:
void baseFunc() {}
};
class Derived : public Base {
public:
void derivedFunc() {}
};
多态
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
class Animal {
public:
virtual void makeSound() { // 虚函数
std::cout << "Animal sound" << std::endl;
}
};
class Dog : public Animal {
public:
void makeSound() override { // 重写虚函数
std::cout << "Bark" << std::endl;
}
};
10. 标准模板库(STL)
容器
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <vector>
#include <list>
#include <map>
#include <set>
std::vector<int> vec; // 动态数组
std::list<std::string> lst; // 双向链表
std::map<std::string, int> mp; // 键值对集合
std::set<double> st; // 唯一元素集合
算法
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <algorithm>
std::vector<int> v = {4,2,5,1,3};
std::sort(v.begin(), v.end()); // 排序
auto it = std::find(v.begin(), v.end(), 5); // 查找
std::reverse(v.begin(), v.end()); // 反转
迭代器
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
std::vector<int> vec = {1,2,3,4,5};
for (auto it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << " ";
}
11. 文件操作
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <fstream>
// 写入文件
std::ofstream outFile("test.txt");
outFile << "Hello File!" << std::endl;
outFile.close();
// 读取文件
std::ifstream inFile("test.txt");
std::string line;
while (std::getline(inFile, line)) {
std::cout << line << std::endl;
}
inFile.close();
12. 异常处理
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
try {
// 可能抛出异常的代码
if (error_condition) {
throw std::runtime_error("Error message");
}
} catch (const std::runtime_error& e) {
std::cerr << "Runtime error: " << e.what() << std::endl;
} catch (...) {
std::cerr << "Unknown error occurred" << std::endl;
}
13. 现代C++特性(C++11及以后)
自动类型推断
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
auto x = 5; // x是int类型
auto y = 3.14; // y是double类型
范围for循环
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
std::vector<int> vec = {1,2,3,4,5};
for (auto num : vec) {
std::cout << num << " ";
}
Lambda表达式
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
auto sum = [](int a, int b) { return a + b; };
std::cout << sum(3, 4); // 输出7
智能指针
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#include <memory>
std::unique_ptr<int> ptr1(new int(10)); // 独占指针
std::shared_ptr<int> ptr2 = std::make_shared<int>(20); // 共享指针
14. 命名空间
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
namespace MyNamespace {
int value;
void func() {}
}
// 使用命名空间
MyNamespace::value = 10;
MyNamespace::func();
// 或者使用using声明
using namespace MyNamespace;
value = 20;
func();
15. 预处理器指令
cpp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
#define PI 3.14159 // 定义宏
#include <iostream> // 包含头文件
#ifdef DEBUG // 条件编译
// 调试代码
#endif
更多推荐
所有评论(0)