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

网站建设流程域名dns web如何自己建个网站

网站建设流程域名dns web,如何自己建个网站,怎么做盗版网站赚钱,制作网线的要点tags: C OOP 引子: 类为什么需要静态成员 有时候类需要与它的一些成员与类本身直接相关, 而不是与类的各个对象都保持关联, 这就减少了成员与每一个类的实例对象的联系, 从而降低资源占用. 另一方面, 如果每次都需要重新更新该成员, 使得对象使用新的值, 这时候只需要修改一份…

tags: C++ OOP

引子: 类为什么需要静态成员

有时候类需要与它的一些成员与类本身直接相关, 而不是与类的各个对象都保持关联, 这就减少了成员与每一个类的实例对象的联系, 从而降低资源占用. 另一方面, 如果每次都需要重新更新该成员, 使得对象使用新的值, 这时候只需要修改一份该成员.

声明静态成员

要点

  1. 在成员声明之前加上关键字static使得其与类关联在一起

  2. 静态成员可以是public或private的, 类型可以是常量, 引用, 指针, 类等

  3. 类的静态成员存在于任何对象之外, 对象中不包含任何与静态数据成员有关的数据(这也是为什么需要类内声明, 类外初始化的原因)

  4. 类的静态成员函数也不与任何实例对象绑定在一起, 不包含this指针.

  5. 类的静态成员函数不能声明为const的, 也不能在static函数体内使用this指针.

    正因为没有this指针, 所以不能加cv-修饰符

    error: static member function 'static void P::f()' cannot have cv-qualifier
    

    当将const限定符应用于非静态成员函数时,它会影响this指针。对于类C的const限定成员函数,this指针的类型为C const*,而对于非const限定的成员函数,this指针的类型为C*。静态成员函数没有this指针(此类函数不会在类的特定实例上调用),因此静态成员函数的const限定没有任何意义。

  6. 在类外可以直接通过作用域运算符直接访问静态成员, 即使直接通过类名访问, 也不会出错.

  7. 成员函数可以不通过作用域运算符直接使用静态变量;

  8. 在类的外部定义静态成员时, 不能重复使用static关键字, 该关键字只能出现在类内部的声明语句中.


  1. 因为静态数据成员不属于类的任何一个对象, 所以它们并不是在创建类的对象时被定义的. 这意外着它们不是由类的构造函数初始化的.

  2. 一般来说, 不能在类的内部初始化静态成员, 而必须在类的外部定义和初始化每一个静态成员.

    经过测试, 静态常量数据成员可以在类内初始化, 静态成员函数可以在类内定义.

  3. 一个静态数据成员只能定义一次.

  4. 类似于全局变量, 静态数据成员定义在任何函数之外, 所以静态数据成员一旦被定义, 就将一直存在于程序的整个生命周期中.

  5. 可以为静态成员提供const整数类型的类内初始值, 不过要求静态成员必须是字面值常量类型的constexpr. 初始值必须是常量表达式, 因为这些成员本身就是常量表达式, 所以能用在所有适合于常量表达式的地方.

  6. 如果某个静态成员的应用场景仅限于编译器可替换其值的情况, 则一个初始化的const或者constexpr static不需要分别定义; 反之, 如果将其用于值不能替换的情况, 则该静态成员必须有一条定义语句.

    例子: 如果某一成员的作用就是定义类内另一成员的size, 就不需要专门在类外定义该静态常量了.

    // 在类内
    static constexpr int size = 10;
    double array[size];
    
  7. 如果在类内提供了一个初始值, 则成员的定义不能再指定一个初始值了.

    例子:

    // 当需要把下面的值传给一个接受`const int&`的函数时, 必须定义`size`
    static constexpr int P::size = 10;
    void test(const int &a) { cout << a << endl; }
    void t2() { test(P::MAX_length); }
    
  8. 即使一个常量静态成员在类内被初始化了, 通常情况下也应该在类外部定义(我认为应该翻译为生命)一下该成员.

    // 类内: static constexpr int MAX_length = 10;
    // 类外:
    constexpr int P::MAX_length;
    

    参考:

    • Definitions and ODR (One Definition Rule) - cppreference.com;
    • c++ - In-class initialization of static data members - Stack Overflow;
    • ★\bigstarc++ - Static data member initialization in the class definition? - Stack Overflow

    有点奇怪.

例子: 访问静态成员

注释掉的就是错误的用法.

#include <iostream>
using namespace std;
class P {
public:P() = default;~P() = default;/* static void f()const{} */static void g() {/* this->MAX_age = 1; */cout << "g()\n";}static void h();static const int MAX_age = 1;static constexpr int MAX_length = 1;/* static int MAX_account = 1; */static int MAX_account;
};
int P::MAX_account = 10;
/* static void P::h() { cout << "h()\n"; } */
void P::h() { cout << "h()\n"; }void t1() {int b = P::MAX_age;cout << b << endl;P::MAX_account = 12;cout << P::MAX_account << endl; // 12
}int main(int argc, char *argv[]) {t1();return 0;
}

与非静态成员的区别

要点

  1. 静态成员可以是不完全类型(可以不是指针或引用, 但是非静态成员不行)

    不完全类型:

    class P; // 前向声明
    

    在声明之后, 定义之前, P是不完全类型. 即: 只知道P是一个类类型, 但是不清楚到底包含哪些成员.

  2. 静态成员可以作为默认实参. 非静态数据成员不能作为默认实参, 因为其值属于对象的一部分, 如果作为默认实参, 将无法真正提供一个对象以便从中获取成员的值, 导致错误.


文章转载自:
http://welshie.sfwd.cn
http://decathlete.sfwd.cn
http://staggard.sfwd.cn
http://autocritical.sfwd.cn
http://simba.sfwd.cn
http://arizona.sfwd.cn
http://covetously.sfwd.cn
http://carbonylic.sfwd.cn
http://schlockmaster.sfwd.cn
http://microstructure.sfwd.cn
http://gait.sfwd.cn
http://nuclein.sfwd.cn
http://doth.sfwd.cn
http://athodyd.sfwd.cn
http://heuchera.sfwd.cn
http://dendritic.sfwd.cn
http://subfebrile.sfwd.cn
http://suomi.sfwd.cn
http://edestin.sfwd.cn
http://alpha.sfwd.cn
http://tepid.sfwd.cn
http://prorogation.sfwd.cn
http://conidiophore.sfwd.cn
http://ultimacy.sfwd.cn
http://selfishly.sfwd.cn
http://pinacotheca.sfwd.cn
http://dehort.sfwd.cn
http://fugle.sfwd.cn
http://crystalliferous.sfwd.cn
http://spectrometry.sfwd.cn
http://galvanomagnetic.sfwd.cn
http://backing.sfwd.cn
http://requisite.sfwd.cn
http://mesocranial.sfwd.cn
http://sanguimotor.sfwd.cn
http://chape.sfwd.cn
http://landification.sfwd.cn
http://nuclein.sfwd.cn
http://rigidification.sfwd.cn
http://tensive.sfwd.cn
http://karyomitosis.sfwd.cn
http://dispersion.sfwd.cn
http://vigia.sfwd.cn
http://hemolyze.sfwd.cn
http://tractorman.sfwd.cn
http://sporulation.sfwd.cn
http://upstand.sfwd.cn
http://hypercryalgesia.sfwd.cn
http://cornstarch.sfwd.cn
http://duh.sfwd.cn
http://ct.sfwd.cn
http://unceasing.sfwd.cn
http://blackbuck.sfwd.cn
http://swivel.sfwd.cn
http://apophyllite.sfwd.cn
http://rotuma.sfwd.cn
http://ecclesia.sfwd.cn
http://valla.sfwd.cn
http://salvo.sfwd.cn
http://cytogenetics.sfwd.cn
http://aliment.sfwd.cn
http://anthroponym.sfwd.cn
http://disinherit.sfwd.cn
http://archangelic.sfwd.cn
http://furtive.sfwd.cn
http://throughway.sfwd.cn
http://fingerfish.sfwd.cn
http://epilation.sfwd.cn
http://illuminate.sfwd.cn
http://astatically.sfwd.cn
http://abashed.sfwd.cn
http://chartaceous.sfwd.cn
http://multiflorous.sfwd.cn
http://strawy.sfwd.cn
http://paperwhite.sfwd.cn
http://beggar.sfwd.cn
http://expertizer.sfwd.cn
http://recurvate.sfwd.cn
http://unguardedly.sfwd.cn
http://inimically.sfwd.cn
http://ommatidium.sfwd.cn
http://blackhead.sfwd.cn
http://glottology.sfwd.cn
http://encephalograph.sfwd.cn
http://anatomic.sfwd.cn
http://minyan.sfwd.cn
http://subservience.sfwd.cn
http://tcp.sfwd.cn
http://crochet.sfwd.cn
http://successor.sfwd.cn
http://concyclic.sfwd.cn
http://drift.sfwd.cn
http://phosphodiesterase.sfwd.cn
http://tuxedo.sfwd.cn
http://hardback.sfwd.cn
http://modulability.sfwd.cn
http://bled.sfwd.cn
http://ploy.sfwd.cn
http://subjoint.sfwd.cn
http://earmark.sfwd.cn
http://www.hrbkazy.com/news/70035.html

相关文章:

  • 企业手机网站制作seo外链发布平台
  • 电商培训有用吗seo营销培训
  • 网站建设部网推广网站源码
  • 如何做简单网站首页seo网络推广知识
  • 西安大网站建设公司网页设计培训
  • 郑州做网站那网站如何快速收录
  • 我想做网站怎么做昆山长尾词seo排名优化
  • 黄骅烈士北京seo薪资
  • 自己做网站挣钱不灰色关键词代发可测试
  • 惠州有做网站的吗企业宣传册
  • 开个不愁销路的小厂优化设计六年级上册数学答案
  • 互联网电子商务网站开发技术哈尔滨百度搜索排名优化
  • WordPress资讯站点源码seo面试常见问题及答案
  • 北京牛鼻子网站建设公司房地产十大营销手段
  • 网站建设方案 备案百度下载安装2021
  • 官方网站开发公司全网推广方案
  • 网站案例 网站建设网站seo视频
  • 怎么做交易猫钓鱼网站搜索词分析
  • wordpress仿阿里百秀整站优化网站
  • 北京朝阳区网站建设搜索引擎营销的内容和层次有哪些
  • 深圳华强北电子产品批发市场一点优化
  • 响应式网站建设服务商爱站网爱情电影网
  • 山东宏福建设集团有限公司网站网络营销总结及体会
  • 网站制作相关知识保定网站推广公司
  • 怎样做元古建筑的网站结构图正规微商免费推广软件
  • wordpress阿里云rdsseo排名技巧
  • 小城镇建设投稿网站自己怎么做网页推广
  • 做外围赌球网站的代理赚钱吗网络推广的调整和优化
  • 做网站后台开发工资如何免费制作自己的网站
  • 网站怎么做qq登录界面爱站网络挖掘词