c++——类作用域_c++类作用域_45°的阳光的博客-程序员秘密

技术标签: linux——c++  c++  类作用域  

1.在类中定义的名称,其作用域是整个类,改名称只在此类中是已知的,类外是不可知的。 【(.)----直接成员运算符 (->)------间接成员运算符 (::)----作用域解析运算符】
2.定义一个作用域为类的常量
1>直接定义《错误,不可行》

class base 
{
    
private:
	const int value=8; //定义错误
	char str[value];

....

};
//因为类的声明只是描述了对象,并没有创建对象。因此,在创建对象前,将没有用于存储值得空间

俩种可行方法
2-1>在类中声明一个枚举,在类中声明的枚举作用域是整个类,因此可以用枚举为整型常量提供作用域为整个类的符号名称。

#include<iostream>

using namespace std;

class base
{
    
private:
	enum {
    Value = 23};
	int member[Value];
public:
	base();
	void show();
};

base::base()
{
    
	member[0]=1;
}

void base::show()
{
    
	cout<<"value is "<<Value<<" |  member[0] "<<member[0]<<endl;
}

int main()
{
    
	base str1;
	str1.show();
	return 0;
}

运行结果:
在这里插入图片描述

2-2>使用关键字static,static定义的常量将与其他静态变量存储在一起,而不是存储在对象中

#include<iostream>

using namespace std;

class base
{
    
private:
	static const int Value=23;
	int member[Value];
public:
	base();
	void show();
};

base::base()
{
    
	member[0]=1;
}

void base::show()
{
    
	cout<<"static value is "<<Value<<" |  member[0] "<<member[0]<<endl;
}

int main()
{
    
	base str1;
	str1.show();
	return 0;
}

运行结果:
在这里插入图片描述

3.作用域内枚举

1.错误示例,假设枚举dog和cat都定义了相同的枚举变量就会引起冲突
enum dog{
    run,sit,eat};
enum cat{
    run,jump,sleep};
//因为dog和cat在相同的作用域,所以发生冲突

2.解决方法提供一种新枚举,其作用域为类
enum class dog{
    run,sit,eat};
enum cat{
    run,jump,sleep};
//枚举的作用域变为类后,不同枚举中定义的枚举量就不会发生冲突
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/afootball/article/details/109117776

智能推荐

mysqldump中断的常见错误和解决措施_mysqldump网络断_Mumunu-的博客-程序员秘密

最近统一处理了一大堆db备份失败的案例,针对mysqldump的失败的现象和处理措施总结如下mysqldump: Error 2020: Got packet bigger than 'max_allowed_packet' bytes when dumping table `blt_bulletinannex` at row: 626报错条件:一般是存在blob,text

苹果电脑mac桌面上出现关不掉的黑框/白框 解决办法_软软要当程序媛的博客-程序员秘密

苹果电脑桌面上莫名其妙出现了奇怪的可拉动的关不掉的黑框/白框怎么办?就这种奇怪黑框,颜色取决于你的主题颜色,你要是浅色主题那这个框就是白色的。上图是我把它拉大了之后的样子,这个框有个特点就是可以变大变小变漂亮但就是关!不!掉!我查遍了网络,最终发现这几种解决方法,遇到同样问题的胖友们一个一个试,总能成功的出现原因据说是你点一下访达的然后又打了一下键盘balabala的,反正是访达的问题...

第3次作业:团队介绍_weixin_30635053的博客-程序员秘密

skyline团队介绍(由团队全体成员共同完成)1.我们的团队  团队目前有组员8名。其中男生6名,女生2名。2.团队组员介绍(按姓名拼音排序)陈杰    这个小组的组长,典型理工男一枚,凡事都爱讲逻辑。对很多事都挺有兴趣,但比较喜欢的应该是实践动手方面,平时闲在宿舍不怎么玩游戏也不怎么爱看剧,比较喜欢刷刷新闻(有点像老年人的生活方式)。学习...

Keil(MDK-ARM)系列教程(八)_在线调试(Ⅰ)_strongerHuang的博客-程序员秘密

推荐分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!http://www.captainbed.net/strongerhuang我的网站:https://www.strongerhuang.com我的知乎:https://www.zhihu.com/people/strongerHuang.comⅠ、写在前面K...

WINCC 7.2 中文版—真正的中文版_wincc7.2语言包_sdlcrjw的博客-程序员秘密

看到题目,可能很多人会疑问了,7.2中文版是真的中文版,那么难道别的版本6.2  7.0 就不是真的中文版了?  嗯,您还真猜对了。在此之前的WINCC所谓的中文版都是假的中文版。  可以测试为证:  分别在WINCC7.2 , 7.0 以及6.2中,设置语言选项为中文(中国),然后插入一个按钮,加入如下的代码:  MSGBOX "语言代码:" & HMIRuntime.L

linspace 生成线性间距向量(Matlab)_仗剑走天涯1的博客-程序员秘密

1.语法:y = linspace(x1,x2)y = linspace(x1,x2,n)2.说明:y = linspace(x1,x2) 返回包含 x1 和 x2 之间的 100 个等间距点的行向量。y = linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。linspace 类似于冒号运算符“:”,但可以直接控制点数并始终包括端点。“l...

随便推点

软件测试-----XPath、CSS定位_紫楠&馨芷的博客-程序员秘密

XPath、CSS定位1. 什么是Xpath?1. XPath即为XML Path 的简称,它是一种用来确定XML/HTML文档中某部分位置的语言。2. HTML可以看做是XML的一种实现,所以Selenium用户可以使用这种强大的语言在Web应用中定位元素。Xpath用途:基于HTML文档结构使用XPath进行元素定位提示:Xpath为强大的语言,那是因为它有非常灵活定位策略;2....

jquery中append操作插入元素示例_wangcuiling_123的博客-程序员秘密

append是作为子元素插入到最后一个位置,图示:$("ul").append( $("div") );

Nginx隐藏响应头信息的Server信息和版本信息_关闭nginx openrest 版本__Sirius的博客-程序员秘密

1、隐藏nginx版本信息在nginx.conf里面加server_tokens off;就可以隐藏版本号。2、隐藏server信息实现方案 : 需要重新编译nginx进入解压出来的nginx 源码 目录(不是nginx的安装目录) vi src/http/ngx_http_header_filter_module.c # 49-50行编辑:内容:static char ngx_http_se

四大解析器(BeautifulSoup、PyQuery、lxml、正则)性能比较_dian19881021的博客-程序员秘密

用标题中的四种方式解析网页,比较其解析速度。当然比较结果数值与电脑配置,python版本都有关系,但总体差别不会很大。下面是我的结果,lxml xpath最快,bs4最慢==== Python version: 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] =====...

vim 卡住 死机 没有任何反应_nvim运行怎么不动_Remould me的博客-程序员秘密

访问本站观看效果更佳使用vim时,会因为按了Ctrl + s后,会发现不能输入任何字符,类似死机;这并不是死机,或者vim卡住,而只是按了Ctrl + s后,vim停止向终端输出。解决方法:退出这种状态,按下Ctrl + q。...

ip地址,子网掩码,以及cidr记法_tylerpiece的博客-程序员秘密

一般路由的ip记法为ip地址+子网掩码,子网掩码的作用为划分子网即192.168.1.1     mask 255.255.255.0​转化为二进制ip:11000000.​10101000.00000001.00000001mask:11111111.11111111.11111111.00000000ip与mask取“与”运算,得192.168.1.0,

推荐文章

热门文章

相关标签