专业编程基础技术教程

网站首页 > 基础教程 正文

C/C++ | 关键字case、catch、char、class解析

ccvgpt 2024-08-11 15:00:08 基础教程 11 ℃

case

在switch里面用来检测匹配 .

switch

语法:

C/C++ | 关键字case、catch、char、class解析

  switch( expression ) {
    case A:
      statement list;
      break;
    case B:
      statement list;
      break;
    ...
    case N:
      statement list;
      break;
    default:
      statement list;
      break;
  }

switch语句允许你通过一个表达式判断许多数值,它一般用来在多重循环中代替if()...else if()...else if()... 语句. break 语句必须在每个case 语句之后, 负责循环将执行所有的case语句.default case 是可选的.假如所有的case都不能匹配的话,他将和defult case匹配. 例如:

    char keystroke = getch();
    switch( keystroke ) {
      case 'a':
      case 'b':
      case 'c':
      case 'd':
        KeyABCDPressed();
        break;
      case 'e':
        KeyEPressed();
        break;
      default:
        UnknownKeyPressed();
        break;
    }

catch

catch 语句通常通过 throw 语句捕获一个异常.

throw

语法:

  try {
    statement list;
  }

  catch( typeA arg ) {
    statement list;
  }

  catch( typeB arg ) {
    statement list;
  }

  ...

  catch( typeN arg ) {
    statement list;
  }

throw 在C++体系下用来处理异常.同try 和 catch 语句一起使用, C++ 处理异常的系统给程序一个比较可行的机制用于错误校正.当你通常在用 try 去执行一段有潜在错误的代码时.在代码的某一处,一个throw 语句会被执行, 这将会从try的这一块跳转到catch的那一块中去. 例如:

    try {
      cout << "Before throwing exception" << endl;
      throw 42;
      cout << "Shouldn't ever see this" << endl;
    }  

    catch( int error ) {
      cout << "Error: caught exception " << error << endl;
    }
#include <iostream>
#include <exception>

// 捕获异常类
class MyException : public std::exception
{
public:
    MyException(double value) : m_value(value) {}

    double getValue() const { return m_value; }

private:
    double m_value;
};

int main()
{
    // 尝试运行一下代码
    try
    {
        int a = 10;
        int b = 0;
        if (b == 0)
        {
            throw MyException(a / static_cast<double>(b));
        }
    }
    catch (const MyException& err)
    {
        std::cout << "Exception: " << err.getValue() << std::endl;
    }

    return 0;
}

运行结果


char

关键字char用来声明布尔型变量.

char

字符类型

class

语法:

  class class-name : inheritance-list {
// 私有 只有我自己能用
    private-members-list;    

    // 保护 我的孩子 孙子。。。可用
    protected:
      protected-members-list;
// 公共类 对外开放
    public:
      public-members-list;

  } object-list;

关键字class允许你创建新的数据类型. class-name 就是你要创建的类的名字,并且 inheritance-list 是一个对你创建的新类可供选择的定义体的表单.类的默认为私有类型成员,除非这个表单标注在公有或保护类型之下. object-list 是一个或一组声明对象.举个例子:

    class Date {
      int Day;
      int Month;
      int Year;
    public:
      void display();
    };

Tags:

最近发表
标签列表