C++学习笔记

这篇博客详细介绍了C++的学习笔记,涵盖基本语法、面向对象编程和高级教程。内容包括C++的关键字、数据类型、引用、类与对象、继承、多态、文件流操作、异常处理、动态内存管理和模板等核心概念。此外,还涉及到信号处理和多线程编程的基础知识。
摘要由CSDN通过智能技术生成

C++学习笔记

鉴于C++可看作是C语言的扩展,或者说是面向对象的C语言版本。其语法方面多有类似指出,此笔记也就简要写出C++中与C不同和新增的语法部分。

当然C与C++依然算作是两种语言,此处本人小白,亦不做辩论,只在此方便笔记而已。

1、基本语法

  • 简介

    linux下C语言用gcc,C++用g++编译;C++含有对象、类、方法、即使变量等概念。

C++ 的预编译库包含了绝大多数C语言的库,自身格式略有不同

#include <iostream>
using namespace std;//使用标准的命名空间
//C语言是<stdio.h>
int main(){
  cout << "hello C++";//输出语法是cout << ,有时候还要用endl;
}
  • 关键字
asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

- 三字字符

三字符组 替换
??= #
??/ \
??’ ^
??( [
??) ]
??! |
??< {
??> }
??- ~

这些都是古老程序,当时为了表示键盘上没有的字符而设计的。

  • 数据类型

    bool、char、int、float、double、void、wchar_t(宽字符型),以及signed、unsigned、short、long等修饰符

    • typedef定义新名称
    typedef int feet;//那么就可以用feet代替int类型定义变量了
    • 枚举
    enum enum_name{list of names} var-list;
    //示例
    enum color{red,green,blue} c;
    c = blue;
    //默认情况,第一个值=0,第二个=1,依次+1,也可以直接定义
    enum shape {rectangle,circle=5,square} sp;
    //那么此时,square=6,比上一个+1.

    const声明常量,成员变量自动初始化,char=‘\0’;默认初始值

    有符号和无符号的修饰符

    
    #include <iostream>
    
    using namespace std;
    int main(){
    short int i;//有符号短整数
    unsigned short int j;//无符号的
    j = 50000;//赋值
    i = j;
    cout << i << " , " << j;
    return 0;
    }
    //输出结果
    -15536 , 50000
  • C++限定符

    • const 常量修饰符
    • volatile 告知编译器,其修饰的变量可能会被未知方式修改
    • restrict修饰的指针,是一种唯一访问它所修饰对象的方式
  • C++存储类

    auto、register、static、extern、mutable(用于对象修饰,允许对象成员代替常量,mutable成员可通过const成员修改)

  • String类

    相比char字符类型,增加了许多常用便捷操作

  • 引用

    引用不同于指针

    • 没有空引用,可以用空指针
    • 一旦引用被初始化为一个对象,就不能指向其他对象,指针可以随时变向
    • 引用必须创建时初始化,指针可以随时

    引用使用&符号

    //变量的声明初始化
    int i = 17;
    //声明变量i的引用
    int& r = i;//成为r是初始化为i的整形引用
  • 基本输入输出

    I/O库

    <iostream><iomanip><fstream>
    • 标准输出cout,输入cin
    
    #include <iostream>
    
    using namespace std;
    int main(){
    char str[] = "Hello C++";
    cout << "Value of Str is : " << str << endl;
    char name[30];
    cout << "Please input your name";
    cin >> name;
    cout << "your name is : "<<name<<endl;//endl  --  end line;
    }
    • 标准错误流cerr,日志流clog

2、面向对象

  • 对象类

    class关键字

    class Box {
    public ://还有privateprotected,friend有点不同
        double length;
        double breadth;
        double height;
    };
    //声明类对象
    Box box1;
    //然后用.符号访问类成员
    box1.length
  • 继承

    C++可以多继承

    //格式
    class derived-class : access-specifier base-class
    //示例
    class Rectangle : public Shape{
    ...
    }

    权限修饰符public、private、protected

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值