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

为什么public const不暗示静态?

public const不暗示静态,是因为public const关键字用于定义常量,而常量是在编译时被解析和赋值的,不需要在运行时进行实例化或访问。常量的值在整个程序中都是不可变的,因此不需要将其与特定的实例或对象关联。

常量的作用是为了提供一个固定不变的值,可以在程序的任何地方使用。它们通常用于存储不会改变的数值或字符串,例如数学常数、固定的配置值等。

常量的优势在于:

  1. 可读性:常量具有描述性的名称,使代码更易读和理解。
  2. 可维护性:通过使用常量,可以在需要修改值时只需更改一处,而不必在整个代码中搜索和替换。
  3. 防止错误:常量的值在编译时被确定,可以防止意外的修改或错误的赋值。

常量的应用场景包括但不限于:

  1. 数学计算:例如圆周率π、自然对数e等。
  2. 配置参数:例如数据库连接字符串、API密钥等。
  3. 枚举值:例如表示状态、类型或选项的固定值。

腾讯云提供了多个与常量相关的产品和服务,例如:

  1. 腾讯云对象存储(COS):用于存储和访问常量数据,提供高可靠性和可扩展性。产品介绍链接:https://cloud.tencent.com/product/cos
  2. 腾讯云函数计算(SCF):用于执行无服务器函数,可以将常量作为函数的输入参数或返回值。产品介绍链接:https://cloud.tencent.com/product/scf

需要注意的是,以上提到的腾讯云产品仅作为示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于 java 中的 set,get方法,而为什么推荐直接使用public

我不知道有没有人遇到过,有一段时间,我都觉得那些 set,get的用处何在,我直接写一个public直接拿不就行了,多爽,但是随着使用的频繁,越来越想去搜索一下这个问题,而不是按照官方的推荐,前辈们的使用都是建议...举一个简单的例子,如果只是简单的赋值操作,直接public 和 set get并无两样,但是如果里面有一些逻辑,比如限制数据的大小,这样直接Public 就没办法控制了。...其次,安全性方面,private 私有的,而public是谁都可以访问。...网上也有说,如果让你接手一个项目,里面都是用了 public,那么对于这个数值的操作,岂不是得又翻一下项目了。...综上所述,写到这里,我诞生了一个想法,其实set ,get ,public,对于它们使用完全取决于我们程序员自己,为了让项目之间的逻辑更加清晰,有些标准自上而下,慢慢的传了下来,无论你使用那种,但是有一个东西是无法避免的

1.5K20

类和对象竟是这样的(下集)

为什么又要搞一个初始化列表出来。 其实根据其名字可以知道初始化列表是用来初始化的,在构造函数中,其实并不能算是初始化,只能算赋值,因为构造函数可以多次调用,而初始化只能一次。...输出1 1 B.程序崩溃 C.编译不通过 D.输出1 随机值 答案是D 为什么呢?...静态成员变量必须在类外定义,定义时添加static关键字,类中只是声明 (3). 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问 (4)....静态成员也是类的成员,受public、protected、private 访问限定符的限制 (6).静态成员函数不可以调用非静态成员函数,非静态成员函数可以调用类的静态成员函数 三.友元 五.匿名对象...祝大家越来越好,不用关注我(疯狂暗示

7810
  • C++的类型转换

    C语言中的类型转换 在C语言中,如果等号两边的类型不一样,或者形参和实参的类型匹配,或者函数返回值与接收的变量类型不同,就会发生类型转换。C语言中存在两种类型转换:隐式类型转换和显示类型转换。...比如:string和const char* 2.2 自定义类型转换为内置类型 自定义类型转换为内置类型,本质是重载一个operator函数,例如下面: class A { public: operator...int main() { //强制类型转换,但是为什么const单独拿出来 //就是专门提醒,去掉const属性是有一些内存可见优化的风险,要注意是否加了volatile const int a2...0; } 那么我们为了专门提醒,去掉const属性是有一些内存可见优化的风险,并要注意是否加了volatile,这也是我们为什么要加这个const_cast操作符的原因。...祝大家越来越好,不用关注我(疯狂暗示

    10110

    DAY38:阅读存储器修饰符

    本章节说的__managed__即是静态分配的....这是一个很给力的特性, 但一般推荐在Windows上使用(Windows上一定情况下退化成普通的zero-copy memory, 而且性能很惨)。 这是说的静态分配....其实静态分配有很多好处, 有些要求严格的项目是很多时候不允许动态分配的,因为静态分配只要运行起来了, 存储器的使用情况不会发生变化, 程序要么一切正常的运行了, 要么运行起来(资源不足),而动态的则可能随着运行中的数据变化...提高性能.请注意, 这只是一个暗示, 如果你暗示了编译器是一套, 但是做的是另外一套做法,例如, 有的读者比较调皮, 想尝试一下使用重叠的3个指针, 却告诉了编译器是__restrict__的, 结果会如何...CUDA C编译器, 就一定要做到你的指针使用行为和你所暗示过的一致.

    38430

    语义耦合(Semantic Coupling)

    虽然在代码的静态分析中,这一的耦合消失了,但我始终觉得不妥。觉得耦合依然存在,只是不再能被静态分析了。...在静态代码分析工具认为没有耦合的情况之下,如果两个类之间还交换带有隐含意义的数据,假设对方已为自己完成了某种工作,暗示对方执行期望的代码,那么这两个类在语义上还存在着耦合。...暗示对方执行期望的代码 目前主流的 MVVM 框架几乎都支持 Message 机制,为了解决部分情况下 ViewModel 的操作需要通知到 View 来完成的情况。...但是,这个机制太万能了,以至于各种不同的开发中可能写出实际上依然在耦合的代码(名义上已经耦合了): public class DemoView : IMessageReceiver<ShowErrorInfoMessage...为什么语义耦合也有危害 直接的耦合可以在静态代码分析工具的帮助下帮助我们理清楚依赖关系并批量重构(重命名等),不过这个过程是非常痛苦的,尤其是耦合是双向的时候,或者被非常多类耦合的时候。

    78110

    C++:47---绝不重新定义继承而来的缺省参数值

    一、静态类型、动态类型 静态类型:在被声明时所采用的的类型 动态类型:目前所知对象的类型 演示案例 下面是一个继承体系 class Shape { public: enum ShapeColor { Red...{ public: virtual void draw(ShapeColor color = Green)const = 0; }; class Circle :public Shape { public...Rectangle :public Shape { public: virtual void draw(ShapeColor color = Red)const; }; class Circle...:public Shape { public: virtual void draw(ShapeColor color = Red)const; }; 低效率的原因: ①代码重复 ②依赖性太高,如果基类中的缺省参数值改变了...: enum ShapeColor { Red, Green, Blue }; void draw(ShapeColor color = Red)const { //因为是non-virtual函数,因此建议派生类隐藏

    45840

    java每日一题20201022

    话说干了这么多年的开发,只知道会用,怎么用,用什么,隐约也知道了为什么用,但为啥JAVA总像一个犹抱琵琶半遮面的女子,总让人看不透,看不腻?应该就是基础扎实了。...从结果可以看出本地的属性被引用了,而静态导入的Math类中的属性没有被引用,这是因为编译器有“最短路径”原则:可以在本类中查找到的变量、常量、方法,就不会到父类、接口或其他包中去找。...今日问题: import java.util.Date; public class Ques1026 { public static void main(String[] args) {...五角钱的程序员 关注福利 关注公众号,后台回复【电子书】 送几百本常用技术类电子书籍 五角钱的程序员 希望这篇文章可以帮到你~ 欢迎大家点个在看,分享至朋友圈 你我都成为光发热之人,在看在看在看~(疯狂暗示

    48431

    C++特殊类设计

    :如果只声明没有设置成private,用户自己如果在类外定义了,就可以 能禁止拷贝了 (2)只声明不定义:不定义是因为该函数根本不会调用,定义了其实也没有什么意义,写 反而还简单,而且如果定义了就不会防止成员函数内部拷贝了...//只能在堆上 class Heaponly { public: static Heaponly* CreateOnly()//静态是因为不能通过构造函数构造对象,所以不能对函数进行引用...Args> static Heaponly* CreateOnly(Args... args)//静态是因为不能通过构造函数构造对象,所以不能对函数进行引用 { return...Args> static Stackonly CreateOnly(Args... args)//静态是因为不能通过构造函数构造对象,所以不能对函数进行引用 { return...祝大家越来越好,不用关注我(疯狂暗示

    6210

    C#基本知识点-Readonly和Const的区别

    目录 什么是静态常量(Const)和动态常量(Readonly) 静态常量(Const)和动态常量(Readonly)之间的区别 动态常量(Readonly)被赋值后不可以改变 总结 什么是静态常量(Const...静态常量(Const)是指编译器在编译时候会对常量进行解析,并将常量的值替换成初始化的那个值。   ...静态常量(Const)和动态常量(Readonly)之间的区别 静态常量(Compile-time Constant) 动态常量(Runtime Constant) 定义 声明的同时要设置常量值。...Const静态常量,所以它本身就是Static的,因此不能手动再为Const增加一个Static修饰符。...也就解释了之前的实验,为什么更新Const变量的值之后没有调用新的值,因为程序在运行的时候根本不会去加载DoTestConst.dll。那么10这个值是从哪来的呢?

    1.4K10

    C++ 温习笔记(1) - main函数,类对象,作用域,防止头文件二次编译

    加快访问速度取决于现实,但是,正如名字所暗示的那样,这经常是通过在寄存器中放置变量来做到的。这并不能保证将变置在寄存器中,甚至也不能保证提高访问速度。这只是对编译器的一个暗示。...我们可能奇怪为什么不使用全局变量。static局部变量的优点是在函数范围之外它是不可用的,所以它不可能被轻易改变。这会使错误局部化。...(6) const常量 const告诉编译器这个名字表示常量,不管是内部的还是用户定义的数据类型都可以定义为const。如果定义了某对象为常量,然后试图改变它,编译器将会产生错误。...在C++中一个const必须有初始值。...#define XX和他下面的函数声明; 如果由于编码者的不小心或者嵌套包含造成了这个头文件被多次引用;那么当编译到第二次#inlude的地方的时候由于不满足 #ifndef XX这个判断条件所以执行后面的内容

    1.1K10

    Java多线程下的协同控制,这些你都知道了吗?

    静态方法加锁:相当于对当前类加锁,进入同步代码前要获得当前类的锁。...那么要实现这样的操作就要对线程优先级进行操作了,大家都知道线程是有优先级的,优先级高的就有可能优先执行,为什么是可能而不是一定呢?...该方法会让出CPU但是不会让出锁,但也不一定调用之后就会让出CPU,因为它只是给一个暗示,告诉其他线程我可以晚点执行,你们先执行吧!...yield():暗示让出CPU的使用权,但是调度器可能会无视该暗示,并不会让出锁。 stop():强制停止一个线程(推荐使用)。 interrupt():通知线程应该被中断。...当然如果传入限制时间则只会尝试申请一次,如果这一次未申请成功就返回false。

    1.8K20

    .NET面试题解析(05)-常量、字段、属性、特性与委托

    常量const有什么风险? 3. 字段与属性有什么异同? 4. 静态成员和非静态成员的区别? 5. 自动属性有什么风险? 6. 特性是什么?如何使用? 7. 下面的代码输出什么结果?为什么?...正是这个特点导致常量的一个风险,就是不支持跨程序集版本更新; 关于常量不支持跨程序集版本更新,举个简单的例子来说明: public class A { public const int PORT...4、const默认是静态的;而readonly如果设置成静态需要显示声明 。  5、支持的类型时不同,const只能修饰基元类型或值为null的其他引用类型;readonly可以是任何类型。 2....属性提供了更为强大的,灵活的功能来操作字段 出于面向对象的封装性,字段一般设计为Public 属性允许在set和get中编写代码 属性允许控制set和get的可访问性,从而提供只读或者可读写的功能 (...为什么

    83110

    .NET面试题解析(05)-常量、字段、属性、特性与委托

    静态成员和非静态成员的区别? 5. 自动属性有什么风险? 6. 特性是什么?如何使用? 7. 下面的代码输出什么结果?为什么?...正是这个特点导致常量的一个风险,就是不支持跨程序集版本更新; 关于常量不支持跨程序集版本更新,举个简单的例子来说明: public class A { public const int PORT...4、const默认是静态的;而readonly如果设置成静态需要显示声明 。...属性提供了更为强大的,灵活的功能来操作字段 出于面向对象的封装性,字段一般设计为Public 属性允许在set和get中编写代码 属性允许控制set和get的可访问性,从而提供只读或者可读写的功能...为什么

    1K20

    类和对象竟是这样的(中集)

    编译器会生成一个默认的拷贝构造函数,按内存顺序字节顺序直接复制拷贝,这种拷贝称为浅拷贝,也叫值拷贝(与上面一样,对于内置类型直接根据字节拷贝,对于自定义类型调用它的拷贝构造函数) (4)若类中没有涉及到资源的申请,则写写拷贝构造函数都行...int _month; int _day; }; int main() { Date d1; Date d2(d1); return 0; } 那为什么会引发无穷递归呢...:   这几个运算符不能重载 2.赋值运算符重载 重载格式: (1)参数:const+类类型对象的引用 (2)函数名:operator= (3)返回值:类类型的引用 class Date { public..._day; } return left; } // 编译失败: // error C2801: “operator =”必须是非静态成员 为什么会报错呢?...祝大家越来越好,不用关注我(疯狂暗示

    6210

    【C++】继承

    这个其实我们在类和对象的学习中也提过 默认继承方式 那和我们之前学的类的访问修饰限定符一样,继承方式呢,我们也可以选择写,那可以写就意味着也存在默认的继承方式: 使用关键字class时默认的继承方式是...我们来调试一下: 栈溢出了,为什么会栈溢出呢? 我们可以观察一下调用堆栈 我们看到应该是operator=这里死递归了。 为什么会这样呢?...那为什么调不了父类的析构呢?...继承与静态成员 首先我们来回顾一下什么是静态成员: 静态成员不属于某个具体的对象,存放在静态区,被所有类对象所共有。...那这时候我们其实就可以通过静态成员去解决这个问题。 Person不是有一个静态成员变量_count吗,只需在Person的构造函数里面加一句++_count就行了 为什么这样就可以呢?

    12210
    领券