c++学习学习学习
面向对象编程的核心思想是将现实世界中的事物抽象为程序中的对象,每个对象包含数据(属性)和行为(方法)。通过对象之间的交互来完成程序的功能
四大基本特性:
封装:将数据(属性)和操作数据的方法(函数)捆绑在一起,并对外隐藏内部实现细节。通常通过访问控制(public,private,protected)来实现
继承:允许一个(子类)基于另一个类(父类)来创建,自动获得父类的属性和方法,并可以扩展或重写
多态:同一个接口或方法在不同对象中可以有不同的实现方法。例如,父类定义一个方法,子类各自提供具体实现
抽象:忽略复杂细节,只关注对象的关键特征和行为。通常通过抽象类或接口来定义通用结构
创建项目、创建文件、编写代码、运行程序

#include <iostream> 类似于c中的#include <stdio.h>
意思是:请将c++标准库中的负责输入输出(比如键盘输入,屏幕输出)的功能代码包含进来,让我可以使用cout、cin等功能
std::cout 标准输出流,通常是屏幕 std::cin 标准输入流,通常是键盘 std::cerr标准错误流(不缓冲,用于错误信息)std::clog(标准日志流,带缓冲)std::endl换行并刷新缓冲区
using namespace std;在当前作用域中,可以直接使用std命名空间里的名字,不用每次都写std::前缀。
c++标准库(cout,vector,string)中的所有内容都放在一个叫做std的命名空间(namespace)中。
如果不用 using namespace std;std::vector<std::string> names; 创建一个动态数组容器
如果使用了 vector<string> names; 创建一个动态数组容器就是这样的
但是这样也会有问题,例如我写一个 #include <algorithm>,那么包含std::sort,std::find,std::count,std::reverse。但是如果我再写一个using namespace std;
那我写完这个之后就证明一定有std::count这样的 但是我使用namespace std 就是省略了,所以会造成冲突是这个意思吗?
#include <algorithm> 的作用
✅ 正确!
它把标准库中定义的std::count、std::sort等函数“引入”到你的程序中。
所以,std::count确实存在了(在std命名空间里)。
2. using namespace std; 的作用
✅ 正确!
它相当于说:“把std里面所有的名字(比如count,vector,cout,sort……)都放到全局作用域,以后我直接写count,你就知道是std::count。”
如果不使用using namespace std;
#include <algorithm>
void count() { } // ✅ 完全没问题!
int main() {
count(); // 调用自己的 count()
std::count(...); // 明确调用标准库的 count
}
如果使用using namepsace std;之后 写 void count(){}那么这个count就不知道是模板函数还是普通函数。所以很多情况下不适用using namespace std;

cout << "hello world" << endl;这行代码的意思是在屏幕上输出hello world,然后换行
cout:代表控制台输出,<<是流插入运算符,将右边的数据送入到左边的流对象。
cout << "hello"; // 把字符串 "hello" 送入 cout → 屏幕显示 hello
cout << 123; // 把数字 123 送入 cout → 屏幕显示 123
cout << A << B实际上等价于 (cout <<A )<<B 。cout << A的返回值还是cout本身,所以可以继续<<B。
cout << "姓名:" << "张三" << ",年龄:" << 25;
// 输出:姓名:张三,年龄:25
<< endl的意思是换行
cout << "hello world" << endl;
│ │ │
│ │ └─ 插入换行 + 刷新屏幕
│ └─ 把字符串送入输出流
└─ 标准输出对象(屏幕)
system("pause")暂停程序运行,显示“请按任意键继续..."提示,等待用户按键
好的,这个帖子先写到这里
