C++ 是一种功能强大且灵活的编程语言,用于系统编程、应用程序开发、游戏开发等多个领域。下面我将详细讲解 C++ 的基础知识,涵盖以下几个方面:
目录
c++基础详解
1. 基本语法
2. 变量和数据类型
3. 运算符
4. 控制流
5. 函数
6. 数组和字符串
7. 指针和引用
8. 面向对象编程
C++ 程序的基本结构如下:
#include// 包含输入输出流库 int main() { std::cout << "Hello, World!" << std::endl; // 输出 Hello, World! return 0; }
#include
:包含标准输入输出库。
int main()
:主函数,是程序的入口点。
std::cout
:标准输出流,用于输出文本。
std::endl
:表示换行。
C++ 支持多种数据类型,包括基本数据类型和用户自定义数据类型。
基本数据类型:
整数类型:int
,short
,long
,long long
浮点类型:float
,double
字符类型:char
布尔类型:bool
变量声明:
int a = 10; float b = 5.5; char c = 'A'; bool d = true;
C++ 提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符、位运算符等。
算术运算符:
+
(加)
-
(减)
*
(乘)
/
(除)
%
(取余)
关系运算符:
==
(等于)
!=
(不等于)
<
(小于)
>
(大于)
<=
(小于等于)
>=
(大于等于)
逻辑运算符:
&&
(逻辑与)
||
(逻辑或)
!
(逻辑非)
条件语句:
if (condition) { // 执行代码 } else if (another_condition) { // 执行代码 } else { // 执行代码 }
循环语句:
for
循环:
for (int i = 0; i < 10; ++i) { // 执行代码 }
while
循环:
int i = 0; while (i < 10) { // 执行代码 ++i; }
do-while
循环:
int i = 0; do { // 执行代码 ++i; } while (i < 10);
函数用于封装代码,使代码更模块化和易于维护。
函数声明和定义:
int add(int a, int b) { return a + b; }
调用函数:
int result = add(5, 3);
数组:
int arr[5] = {1, 2, 3, 4, 5};
字符串:
C 风格字符串:
char str[] = "Hello";
C++ 风格字符串(使用 std::string
):
#includestd::string str = "Hello";
指针:
int a = 10; int* p = &a; // p 是指向 a 的指针
引用:
int a = 10; int& ref = a; // ref 是 a 的引用
C++ 支持面向对象编程(OOP),主要概念包括类、对象、继承、多态等。
类和对象:
class MyClass { public: int myVar; void myMethod() { std::cout << "Hello, World!" << std::endl; } }; int main() { MyClass obj; obj.myVar = 5; obj.myMethod(); return 0; }
继承:
class Base { public: void display() { std::cout << "Base class display" << std::endl; } }; class Derived : public Base { public: void display() { std::cout << "Derived class display" << std::endl; } };
多态:
class Base { public: virtual void display() { std::cout << "Base class display" << std::endl; } }; class Derived : public Base { public: void display() override { std::cout << "Derived class display" << std::endl; } }; int main() { Base* basePtr; Derived derivedObj; basePtr = &derivedObj; basePtr->display(); // 输出:Derived class display return 0; }