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对象的缓冲区到默认状态。

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

我对类的认真很浅薄,只知道定义一个类方法,作为一个函数。实际上在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)类或函数。

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值