C++Primer 第一章 开始

简介: C++Primer 第一章 开始

最近好像想的有点多,人也不知道该怎们办了,也不知道该怎么学。跟我们数据库老师还有前端老师交流了一下,感觉受益还是挺深的。需要慢慢整理一下现在状态,尽量有节奏的生活,学习。不急躁,不冒进。现在是大三,有好多比赛,想着要不要参加--因为自己害怕失败所以去逃避。

所以想着在复习一下之前的c++prime。


编写一个简单的c++程序


#include<iostream>
using namespace std;
int main()
{
  cout<< "Hello word" << endl;
  return 0;
}


涉及知识点


1. #include:这是C++预处理器指令,用于包含头文件。


2. 头文件iostream:头文件iostream包含了定义C++输入输出流的标准库函数和对象。


3. using namespace std:这是一个命名空间,表示使用std命名空间中的所有函数和变量,std是C++标准库的命名空间。


4. main函数:C++程序从main函数开始执行,int main()表示main函数没有参数,返回一个整型值。


5. cout:cout是C++标准库中的ostream类对象,用于输出显示在屏幕上的文本。


6. "Hello world":这是一串字符串常量,用双引号括起来。


7. <<:这是C++中的输出运算符,用于将文本输出到标准输出流。


8. endl:这是一个C++标准库中的特殊符号,表示换行符。


9. return 0:这是main函数的返回语句,0表示程序正常结束。


很简答


需要注意的只有using namespace std;


std是c++中的标准函数库一种命名空间使用using namespace std可以省略每次都添加std::前缀的麻烦。


cerr 与 clog


在C++中,cerrclog都是标准错误输出流对象,它们可以用于输出错误信息和调试信息。它们的区别在于:

  • cerr对象会立即将文本输出到屏幕,而不管输出缓冲区是否已满。
  • clog对象将文本存储在缓冲区中,并在缓冲区已满、程序结束或用户显式刷新缓冲区时将文本输出。


#include <iostream>
#include <fstream>
using namespace std;
int main() {
    ofstream fout("error.log");  // 将错误信息写入文件
    streambuf* cerrOldBuf = cerr.rdbuf(fout.rdbuf());  // 将cerr的缓冲区指向fout的缓冲区
    int x = 0;
    if (x == 0) {
        cerr << "Error: x cannot be zero" << endl;  // 使用cerr输出错误信息
        clog << "DEBUG: x is zero" << endl;  // 使用clog输出调试信息
    }
    cerr.rdbuf(cerrOldBuf);  // 将cerr的缓冲区恢复为默认
    return 0;
}

上述代码中,我们首先创建了一个名为error.log的文件,将错误信息输出到该文件中。然后,通过cerr.rdbuf(fout.rdbuf())语句将cerr对象的缓冲区指向fout对象的缓冲区,这意味着所有通过cerr输出的信息都将写入fout所指向的文件中。然后,我们使用cerr对象输出了一个错误信息,使用clog对象输出了一个调试信息。最后,我们恢复了cerr对象的缓冲区到默认状态。


使用cerr和clog可以方便地输出调试信息和错误信息,并且通过重定向缓冲区,还可以将它们输出到文件中进行记录。



我对类的认真很浅薄,只知道定义一个类方法,作为一个函数。实际上在c++中类很重要

在C++中,类是一种自定义的数据类型,用于封装数据和操作。类的定义由成员变量和成员函数组成,它们被称为类的成员。

以下是一个示例的类的定义:

```cpp
class MyClass {
private:
    int myInt;  // 私有成员变量
public:
    // 构造函数
    MyClass() {
        myInt = 0;
    }
    // 成员函数
    void setMyInt(int value) {
        myInt = value;
    }
    int getMyInt() {
        return myInt;
    }
};
```

上述代码定义了一个名为`MyClass`的类,其中包含一个私有成员变量`myInt`和两个公有成员函数`setMyInt`和`getMyInt`。


- 私有成员变量:在类定义中使用`private:`关键字声明的成员变量只能在类的内部访问和修改。

- 公有成员函数:在类定义中使用`public:`关键字声明的成员函数可以在类的内部和外部进行调用。

通过创建对象来使用类:

```cpp
int main() {
    MyClass obj;  // 创建一个MyClass类的对象
    obj.setMyInt(42);  // 调用公有成员函数设置myInt的值
    int value = obj.getMyInt();  // 调用公有成员函数获取myInt的值
    cout << "Value: " << value << endl;
    return 0;
}
```

上述代码中,在`main`函数中创建了一个`MyClass`类的对象`obj`。通过调用对象的公有成员函数来设置和获取私有成员变量`myInt`的值,并将结果输出到屏幕上。


这只是类的基本概念,C++中的类还包括继承、多态、访问控制等更高级的特性,以及构造函数、析构函数、静态成员等更多的内容。


简单的常见术语


1类(Class):一种用户自定义的数据类型,包含数据成员和成员函数。


2对象(Object):根据类定义创建的实例,具有类定义的属性和行为。


3成员变量(Member Variable):类中定义的变量,用于存储对象的状态。


4成员函数(Member Function):类中定义的函数,用于操作对象的行为。


5构造函数(Constructor):用于初始化对象的特殊成员函数,名称与类名相同。


6析构函数(Destructor):用于在对象销毁时执行特定操作的特殊成员函数,名称以波浪号(~)开头,后跟类名。


7继承(Inheritance):一种面向对象的概念,允许一个类派生出另一个类,继承其属性和方法。


8多态(Polymorphism):通过继承和虚函数实现的一种特性,允许使用父类指针或引用来调用子类的方法。


9抽象类(Abstract Class):包含纯虚函数的类,不能直接实例化,只能作为其他类的基类。


10接口(Interface):仅包含纯虚函数的抽象类,用于定义类的接口规范。


11动态内存管理(Dynamic Memory Management):通过new和delete运算符在堆上分配和释放内存。


12异常处理(Exception Handling):用于处理程序中出现的异常情况,通过try、catch和throw语句实现。


13模板(Template):通用代码模板,用于创建泛型(Generic)类或函数。


14STL(Standard Template Library):C++标准库中的一部分,提供了许多通用的数据结构和算法。


15迭代器(Iterator):用于遍历STL容器中元素的对象。


16命名空间(Namespace):用于将全局作用域划分为更小的作用域,避免命名冲突。


17指针(Pointer):存储变量地址的变量,可以用于间接访问和修改内存中的数据。

目录
相关文章
|
6月前
|
编译器 C++
c++primer Plus 6 的课后题(第二章2.6)
c++primer Plus 6 的课后题(第二章2.6)
|
6月前
|
存储 程序员 C语言
c++primer plus 6 读书笔记 第四章 复合类型
c++primer plus 6 读书笔记 第四章 复合类型
|
6月前
|
C++
c++primer Plus 6 的课后题(第三章3.6)
c++primer Plus 6 的课后题(第三章3.6)
|
6月前
|
编译器 C++
c++primer plus 6 读书笔记 第十章 对象和类
c++primer plus 6 读书笔记 第十章 对象和类
|
6月前
|
算法 小程序 IDE
c++primer plus 6读书笔记第一章预备知识
c++primer plus 6读书笔记第一章预备知识
|
6月前
|
编译器 数据安全/隐私保护 C++
c++primer plus 6 读书笔记 第十三章 类继承
c++primer plus 6 读书笔记 第十三章 类继承
|
6月前
|
C++
C++ Primer Plus (第6版)中文版 (使用XMind整理)
C++ Primer Plus (第6版)中文版 (使用XMind整理)
C++ Primer Plus (第6版)中文版 (使用XMind整理)
|
6月前
|
C++
c++primer plus 6 读书笔记 第十四章 C++中的代码重用
c++primer plus 6 读书笔记 第十四章 C++中的代码重用
|
6月前
|
C++
c++primer plus 6 读书笔记 第十一章 使用类
c++primer plus 6 读书笔记 第十一章 使用类
|
6月前
|
编译器 C++
c++primer plus 6 读书笔记 第八章 函数探幽0
c++primer plus 6 读书笔记 第八章 函数探幽0