当前位置: 首页 > news >正文

怎样吧自己做的网站发布成都优化网站源头厂家

怎样吧自己做的网站发布,成都优化网站源头厂家,wordpress自定义链接导航,雅式机械加工网目录 static成员概念静态成员变量面试题补充代码1代码2代码3如何访问private中的成员变量 静态成员函数静态成员函数没有this指针 特性 友元友元函数友元类 内部类特性1特性2 匿名对象拷贝对象时的一些编译器优化 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接… 目录 static成员概念静态成员变量面试题补充代码1代码2代码3如何访问private中的成员变量 静态成员函数静态成员函数没有this指针 特性 友元友元函数友元类 内部类特性1特性2 匿名对象拷贝对象时的一些编译器优化 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 个人主页 C语言 ️️️ C语言例题 python 数据结构C语言 C ️️️ 文章链接目录 static成员 概念 声明为static的类成员称为类的静态成员用static修饰的成员变量称之为静态成员变量 用static修饰的成员函数称之为静态成员函数。 静态成员变量一定要在类外进行初始化 静态成员变量 面试题 面试题实现一个类计算程序中创建出了多少个类对象。 class A { public:A(){n;}A(const A aa){ n;} private:static int n; }; int A::n 0;这里的n就是一个静态全局变量,注意静态变量是不能给缺省值的,因为他不是单独属于某一个对象,而是属于这个类的所有对象,因此需要在类外面定义 由于n受域作用限定符的限制,当我们屏蔽掉private后就可以访问n了 我们再来看看下面的三段代码 补充 代码1 class A { public:A(){n;}A(const A aa){ n;} //private:static int n; }; int A::n 0; int main() {A aa1;A aa2;A* ptr nullptr;cout aa1.n endl;cout aa2.n endl;cout ptr-n endl;return代码2 class A { public:A(){n;}A(const A aa){ n;} //private:static int n; }; int A::n 0; int main() {A aa1;//A aa2;A* ptr nullptr;cout aa1.n endl;//cout aa2.n endl;cout ptr-n endl;return 0; }代码3 class A { public:A(){n;}A(const A aa){ n;} //private:static int n; }; int A::n 0; int main() {//A aa1;//A aa2;A* ptr nullptr;//cout aa1.n endl;//cout aa2.n endl;cout ptr-n endl;return 0; }上面的三个代码中ptr输出的n的值是不一样的,这需要我们了解static存储的变量在静态区 比如ptr-n,n并不在ptr指向的对象里,而是在静态区,在寻找n的时候就是去静态区里找 因为是受到static修饰,所以n的值是全局变量,全局变量不想局部变量,出了作用域后就会销毁然后从新开始,也就是说这里的n不会因为一个对象结束后就重新变成0 如何访问private中的成员变量 上面的代码中我们都是将private屏蔽掉才可以访问到n的,当private没有屏蔽的时候,就会因为权限导出不允许访问 要想解决这个问题只有在公有区域里创建一个函数Getn()去获得n的值 class A { public:A(){n;}A(const A aa){ n;}int Getn(){return n;} private:static int n; }; int A::n 0; int main() {A aa1;cout aa1.Getn() endl;return 0; }静态成员函数 静态成员函数的访问方式如下 A::Getn()也是可以这样访问的,另外静态成员变量也同理 静态成员函数没有this指针 静态成员函数与普通的成员函数不同点在于静态成员函数没有this指针,所以不能访问非静态成员变量或者函数 class A { public:A(){n;}A(const A aa){ n;}static int Getn(){a;return n;} private:static int n;int a; }; int A::n 0; int main() {A aa1;cout A::n endl;return 0; }特性 1. 静态成员为所有类对象所共享不属于某个具体的对象存放在静态区 2. 静态成员变量必须在类外定义定义时不添加static关键字类中只是声明 3. 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问 4. 静态成员函数没有隐藏的this指针不能访问任何非静态成员 5. 静态成员也是类的成员受public、protected、private 访问限定符的限制 友元 友元提供了一种突破封装的方式有时提供了便利。但是友元会增加耦合度破坏了封装所以 友元不宜多用。所以友元我们了解一下就行了 友元分为友元函数和友元类 友元函数 问题 现在尝试去重载operator然后发现没办法将operator重载成成员函数 因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作数了。 但是实际使用中cout需要是第一个形参对象才能正常使用 所以要将operator重载成全局函数。但又会导致类外没办法访问成员此时就需要友元来解决。operator同理。 class Date { public:Date(int year, int month, int day): _year(year), _month(month), _day(day){}// d1 cout; - d1.operator(d1, cout); 不符合常规调用// 因为成员函数第一个参数一定是隐藏的this所以d1必须放在的左侧ostream operator(ostream _cout){_cout _year - _month - _day endl;return _cout;} private:int _year;int _month;int _day; };友元函数可以直接访问类的私有成员它是定义在类外部的普通函数不属于任何类但需要在 类的内部声明声明时需要加friend关键字。 class Date {friend ostream operator(ostream _cout, const Date d);friend istream operator(istream _cin, Date d); public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){} private:int _year;int _month;int _day; }; ostream operator(ostream _cout, const Date d) {_cout d._year - d._month - d._day;return _cout; } istream operator(istream _cin, Date d) {_cin d._year;_cin d._month;_cin d._day;return _cin; } int main() {Date d;cin d;cout d endl;return 0; }说明: 友元函数可访问类的私有和保护成员但不是类的成员函数 友元函数不能用const修饰(没有this指针) 友元函数可以在类定义的任何地方声明不受类访问限定符限制 一个函数可以是多个类的友元函数 友元函数的调用与普通函数的调用原理相同 友元类 友元类的所有成员函数都可以是另一个类的友元函数都可以访问另一个类中的非公有成员。 友元关系是单向的不具有交换性。 比如上述Time类和Date类在Time类中声明Date类为其友元类那么可以在Date类中直接 访问Time类的私有成员变量但想在Time类中访问Date类中私有的成员变量则不行。 友元关系不能传递 如果C是B的友元 B是A的友元则不能说明C时A的友元。友元关系不能继承 class Time {friend class Date; // 声明日期类为时间类的友元类则在日期类中就直接访问Time类 中的私有成员变量 public:Time(int hour 0, int minute 0, int second 0): _hour(hour), _minute(minute), _second(second){}private:int _hour;int _minute;int _second; }; class Date { public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){}void SetTimeOfDate(int hour, int minute, int second){// 直接访问时间类私有的成员变量_t._hour hour;_t._minute minute;_t._second second;}private:int _year;int _month;int _day;Time _t; };内部类 概念如果一个类定义在另一个类的内部这个内部类就叫做内部类。内部类是一个独立的类 它不属于外部类更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越 的访问权限。 注意内部类就是外部类的友元类内部类可以通过外部类的对象参数来访问外部类中的所有成员 但是外部类不是内部类的友元。 特性 1. sizeof(外部类)外部类和内部类没有任何关系。 2. 内部类可以定义在外部类的public、protected、private都是可以的,且内部类受类域限制 3. 注意内部类可以直接访问外部类中的static成员不需要外部类的对象/类名(内部类是外部类的友元类) 特性1 class A { private:static int k;int h; public:class B // B天生就是A的友元{public:void foo(const A a){cout k endl;cout a.h endl;}}; }; int A::k 1; int main() {A::B b;b.foo(A());cout sizeof(A) endl;return 0; }sizeof(A)的结果是4,可能很多人会觉得B在A里面的,所以sizeof(A)的结果是包含了B的空间的,但是事实上不是这样的,如果要让sizeof(A)的结果是算上B的空间大小的话应该像下面这段代码这样写 class B { private:int _b1; }; class A { private:static int k;int h;B _b; }此外类是不占用空间的,因为类只是一个声明,而在定义的时候才会有空间,也就是说声明只是说有这么一个东西,但是不会讲空间分配给他,而定义则是让这个东西真实的存在,并分配空间给他 特性2 内部类也是受访问限定符和类域的限制 class A { public:class B{}; }; int main() {A a;B b;return 0; }当我们用域作用限定符的时候就可以正常运行 class A { public:class B{}; }; int main() {A a;A::B b;return 0; }但是当class B 在A的private中就会因为B是私有导致无法访问 class A { private:class B{}; }; int main() {A a;A::B b;return 0; }匿名对象 匿名对象就是没有名字的对象,他的特点是生命周期只在当前一行 class A { public:A(int a 0):_a(a){cout A(int a) a endl;}~A(){cout ~A() endl;} private:int _a; }; int main() {A aa1;A aa2(2);A();A(3);return 0; }拷贝对象时的一些编译器优化 在传参和传返回值的过程中一般编译器会做一些优化减少对象的拷贝这个在一些场景下还 是非常有用的。 但是不同的编译器优化程度是不同的,所以我们只需要简单了解一下就可以了 class A { public:A(int a 0):_a(a){cout A(int a) endl;}A(const A aa):_a(aa._a){cout A(const A aa) endl;}A operator(const A aa){cout A operator(const A aa) endl;if (this ! aa){_a aa._a;}return *this;}~A(){cout ~A() endl;} private:int _a; }; void f1(A aa) {} A f2() {A aa;return aa; } int main() {// 传值传参A aa1;f1(aa1);cout endl;// 传值返回f2();cout endl;// 隐式类型连续构造拷贝构造-优化为直接构造f1(1);// 一个表达式中连续构造拷贝构造-优化为一个构造f1(A(2));cout endl;// 一个表达式中连续拷贝构造拷贝构造-优化一个拷贝构造A aa2 f2();cout endl;// 一个表达式中连续拷贝构造赋值重载-无法优化aa1 f2();cout endl;return 0; }
http://www.hkea.cn/news/14529282/

相关文章:

  • 做著名建筑物网站简介wordpress 可视化插件
  • 做网站跟app需要多少钱网站开发与rest
  • 2018年网站开发技术广东省白云区属于哪个市
  • 网站建设方投资成本门户网站建设存在问题与不足
  • seo排名网站 优帮云外贸营销员国家职业技能标准
  • 建设自己的二手房中介网站磁力天堂最新版地址
  • 如何在网站做404页面番禺做网站要多少钱
  • 网站推广120种方法请问番禺哪里有做网站的
  • 网站标签设置丹阳房价
  • 网站全站出售免费发布项目信息的平台
  • 做问卷调查有哪些网站好六安哪家做网站不错
  • 淘宝网站建设需求分析最专业的营销网站建设
  • 工厂做网站有用吗做外贸的网站主要有哪些内容
  • 德语网站制作九天娱乐代理平台
  • html5高端网站建设织梦模板wordpress默认logo图片路径
  • 成都网页编辑器开发seo推广效果
  • 视频解析网站如何做搜索网站图怎么做会高清图片
  • 网站在线开发网站 title 被修改
  • 泉州企业做网站手机网站建设好吗
  • 网站建设etw建设网站比较好公司吗
  • 深圳前十网站建设公司成品网页大全下载
  • 网站运营部的职责8黄页网站建设
  • 网站建设的后台登录wordpress怎样电影导航
  • 青岛市建设局网站停工网站上的验证码怎么做的
  • 网站建设合同中的违约责任网站建设的ppt模板
  • 做门用什么网站好网站优化策略分析
  • 网站建设968用什么网站开发巴西客户
  • 建设网站需要支付什么插件费用吗网站建设最新
  • 行业做门户网站挣钱吗erp系统十大软件
  • 做网站电话销售说辞外卖网站制作