清华大学C++课程笔记

这篇博客详细介绍了C++中的引用类型、内联函数、constexpr函数、函数重载,深入讲解了类定义、构造函数、析构函数、静态成员、对象的生存期、指针概念以及STL的基本使用。此外,还涵盖了继承、运算符重载、虚函数、抽象类和模板等核心概念。
摘要由CSDN通过智能技术生成

第三章

3.6 引用类型

定义一个引用时,必须初始化,且被初始化后不得改为指向其他对象。

3.8 内联函数

不能有循环语句和switch语句

3.9 constexpr函数

编译期间可计算的函数,可以用来初始化常量

3.11 函数重载

编译器不以返回值来区分函数。

第四章

4.3.1 类定义

class 类名称
{
public: 公有成员(外部接口)
private: 私有成员
protected: 保护型成员
};

类的成员函数

  • 在类中声明函数原型,在类外给出函数体实现
  • 在类内直接给出函数体,形成内联成员函数

4.4.1 构造函数

构造函数可以重载
初始化列表

Clock::Clock(int newH, int newM, int newS):
    hour(newH), minute(newM), second(newS){
   
}

4.4.4 委托构造函数

Clock::Clock(): Clock(0,0,0){
   }

4.4.5 复制构造函数

形参为本类对象的引用(引用加const)

public:
	Clock(const Clock &a);
}

复制构造函数被调用的三种情况

  1. 定义时以本类另一个对象作为初始值
  2. 调用函数时,使用实参对象初始化形参对象
  3. 返回值是类的对象

4.5 析构函数

public:
	~Clock();

4. 6. 1 类的组合

首先对初始化列表中列出的成员进行初始化,初始化次序设成员在类体中定义的次序,无出现的调用默认构造函数

4.6.3 前向引用声明

class B;
class A{
   
public: 
    void f(B b);
}
class B{
   
public: 
    void f(A a);
}

4.8.1 结构体

默认数据为public,特殊的类

4.8.2 联合体

成员公用同一联合体。

union Mark{
   
    char grade;
    bool pass;
    int percent;
};

4.8.3 枚举类

enum class 枚举类型名:底层类型{
   枚举值列表};

强作用域,其作用域限制在枚举类中

Type::General

转换限制,枚举类对象不可以与整型隐式地互相转换

第五章

5.2 标识符的作用域与可见性

作用域

  • 函数原形作用域,作用域仅限于()
  • 局部作用域
  • 类作用域
  • 文件作用域:开始于声明点,结束于文件结束

5.2 对象的生存期

静态生存期
与程序的运行期相同:在文件作用域中声明的对象,块作用域中声明的用static修饰的对象,只会被初始化一次,不初始化默认为0。
动态生存期
每次进入作用域,都重新初始化

5.3.1 类的静态数据成员

  • 用关键字static声明
  • 为该类的所有对象共享,静态数据成员具有静态生存期
  • 必须在类外定义和初始化
class Point{
   
private:
    int x,y;
    static int count;
public:
    Point(int x=0, int y=0):x(x), y(y){
   
    count++;
    }
}
int Point::count = 0;

5.3.1 类的静态函数成员

静态函数用来处理静态数据,不知道哪个对象调用的静态函数

class Point{
   
public:
    static void showCount(){
   
        cout<<"Object count = "<< count << endl;
    }
}

void main(){
   
    Point::showCount();
}

5.4 类的友元

class Point{
   
public:
    friend float dist(Point &a, Point &b);
}

float dist(Point &a, Point &b){
   
    double x = a.x - b.x;
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【学习目标】  初步掌握程序设计的概念和基本方法;了解C++语言的特点;学会使用Visual C++集成开发环境创建并运行简单的C++项目。  ◇ 了解计算机语言及其发展,了解高级语言的优点。  ◇ 了解结构化程序设计的基本概念,初步掌握结构化程序设计方法  ◇ 了解面向对象程序设计的思想、基本概念和三个主要特征。  ◇ 初步接触C++语言,了解C++语言的特点。  ◇ 熟悉Visual C++ 集成开发环境的基本使用方法,并完成一个简单的C++程序的编写、编译、调试和运行。【重点和难点】  本章的重点在于两种程序设计方法的理解,以及Visual C++ IDE的使用。  其中面向对象程序设计的基本思想、基本概念及主要特征也是本章学习的难点。 【学习方法】  本章概念和知识点较多,学习的时候注意不能死记硬背,要分清知识点的轻重程度。对于计算机语言的发展,只要了解其主要过程就可以了;对于程序设计方法和C++语言的特点,不能在本章范围内孤立学习,要结合下面相应的章节以及亲自上机实践才能掌握,并且这是个渐进的过程,不能一蹴而就;对于C++集成开发环境的使用则一定要通过实际的动手操作才能熟悉。【知识点】  计算机语言;机器语言;汇编语言;高级语言  程序;程序设计;程序设计方法  结构化程序设计;面向对象程序设计  对象;消息;封装;继承;多态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值