首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++】const关键字

C++】const关键字 0x1 常量 C++定义常量有两种方式 #define 宏常量:#define 常量名 常量值 通常在文件上方定义,表示一个常量 宏常量不可以修改 // 宏常量 #define...MAX 999 int main() { return 0; } const修饰的变量: const 数据类型 常量名 = 常量值 通常在变量定义前加关键字const,修饰该变量为常量,不可修改...0x5 const修饰成员函数 0x51 常函数 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 // /...} public: int m_A; mutable int m_B; // 加上mutable关键字之后成为特殊变量,即使在常函数中,也可以修改这个值 }; void...) const { // m_A = 100; // 错误,函数加上了const,属性不可以修改 this->m_B = 100; // 正确,因为加上了mutable关键字

46030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C++复习笔记——C++ 关键字

    这是 C++ 中的一种特殊的函数。 throw throw(抛出)用于实现 C++ 的异常处理机制,可以通过 throw关键字"抛出"一个异常。...,使用标准 C++ 新增加的关键字 export(导出)。...class class(类)是 C++ 面向对象设计的基础。使用class关键字声明一个类。 for for是 C++ 中的循环结构之一。 return return(返回)用于在函数中返回值。...struct struct(结构)类型,类似于 class关键字,与 C 语言兼容(class关键字是不与 C 语言兼容的),可以实现面向对象程序设计。...double double(双精度)类型,C++ 中的基本数据结构,以双精度形式存储一个浮点数。 mutable mutable(易变的)是 C++ 中一个不常用的关键字

    1.3K30

    C++关键字——noexcept

    自C++98起,异常处理机制已成为C++的一部分,通过throw关键字抛出异常,而try-catch块则用于捕获并处理这些异常。...因此,C++程序员很少使用try-catch进行异常捕获——未知的异常无法捕获,已知的异常没必要捕获。 C++11后,逐渐形成“函数要么可能发射异常,要么保证不会发生异常”的共识。...并提出了关键字noexcept用于指明函数保证自己不会发生异常。 用法 noexcept既可以表征普通函数不发射异常,也可以用于表征成员函数不发射异常。...throw true; } //当常规函数触发异常时会提示异常; //0x00007FFA2D8F543C 处(位于 xxxx.exe 中)有未经处理的异常: // Microsoft C+...())<<"\n" <<noexcept(myfunc())<<"\n"; return 0; } 总结 本文回顾了C++98以来的异常处理机制,并介绍了C++11中的noexcept关键字

    16110

    C++ explicit关键字详解

    C++编码时,可以通过构造函数将相应的数据类型转换成为C++类的对象,从某种程度来说给编码带来了方便,但并不是每次都正确,为了避免这种情况,C++提供了explicit关键字,相对于implicit而言...1 隐式转换 C++ 构造函数默认类型为implicit,定义时既可以显示说明也可以默认不加该标识符。...// 没有使用explicit关键字的类声明, 即默认为隐式声明 class CString{ private: char *m_pStr; int m_iSize; public...CString string5(6); //或者如下所示 CString temp(6); CString string5 = temp; 2 显示转换 在构造函数上使用了explicit关键字后...3 再次拆解 explicit关键字只对构造函数有一个参数的形式有效,如果构造函数有多个参数时explicit的功能也将失效,但是C++也提供了一种例外,既如果构造函数的其他参数都有默认值及时参数个数大于

    1.4K20

    C++ explicit关键字详解

    C++ explicit关键字详解 首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的,跟它相对应的另一个关键字是implicit...我们来看下面的例子: class CxString // 没有使用explicit关键字的类声明, 即默认为隐式声明 { public: char *_pstr; int...在C++中, 如果的构造函数只有一个参数时, 那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象....答案就是使用explicit关键字....上面也已经说过了, explicit关键字只对有一个参数的类构造函数有效, 如果类构造函数参数大于或等于两个时, 是不会产生隐式转换的,所以explicit关键字也就无效了.

    8K40

    那些陌生的C++关键字

    那些陌生的C++关键字 学过程序语言的人相信对关键字并不陌生。偶然间翻起了《C++ Primer》这本书,书中列举了所有C++关键字。我认真核对了一下,竟然发现有若干个从未使用过的关键字。...图1 C++ 关键字 一、typeid 从名字直观看来,该关键字应该是获取语言元素的类型ID。其实它和sizeof类似,是一个类型运算符。...C++使用typename的情况有两种: 第一种情况是在函数模板和类模板声明中。一般模板声明中,使用class关键字指定类型参数,后来C++支持使用typename代替class关键字。...C++延续了C风格的强制类型转换的语法: (类型)表达式 但是C风格的转换具体很大的风险性,为此,C++支持四种关键字对不同形式的类型转换进行分别处理。...至此,我们把那些陌生的C++关键字的“老底”摸了个遍,相信以后应该不会再碰到搞不清楚的C++关键字了,希望本文对你有所帮助!

    95970

    C++中的explicit关键字

    1. explicit关键字 explicit的中文含义是显示的,在C++中主要用于防止隐式转换的发生。...如果加上explicit关键字又会是怎样,在Demo(int a)前面加上explicit,结果在编译的时候就显示“no known conversion for argument 1 from ‘int...构造函数 C++中的explicit关键字只能用于修饰只有一个参数或者多参数情况下,除了第一个参数外的其他参数都是默认值的构造函数中,对于无参或者除上述之外的多参数构造函数是无效的,如: class Demo...总结 C++中explicit关键字可以防止隐式转换的发生,在使用时注意如下几点: 只能用于修饰只有一个参数的类构造函数,或者修饰多参数情况下除第一个参数外其余参数都是默认值的构造函数中; 无参构造函数或者多参数构造函数总是显示调用

    58230

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券