• C++Primer类学习笔记


    1) 静态类成员在类定义之外被初始化,也就是不能放到头文件中。例:

     1 // 头文件中
     2 class Account {
     3     Account(double amount, const string &owner);
     4     string owner() {return _owner;}
     5 private:
     6     static double _interestRate;
     7     double _amount;
     8     string _owner;
     9 };
    10 
    11 // cpp文件中
    12 #include "account.h"
    13 double Account::_interestRate = 0.0589;

    2)静态数据成员的类型可以是其所属类,而非静态数据成员只能被声明为该类的对象的指针或引用。例:

    1 class Bar {
    2 public:
    3     // ...
    4 private:
    5     static Bar mem1; // ok
    6     Bar *mem2; // ok
    7     Bar mem3; // error
    8 };

    3)有序型的const静态数据成员可以在类体中用一常量值初始化。

    有序型原文:integral type。这个地方应该指的是“整值类型”。指char、short、int、long和它们的unsigned版本,不含float和double。

    参考:http://blog.csdn.net/xiajun07061225/article/details/6955365

     1 // 头文件
     2 class Account {
     3     // ...
     4 private: 
     5     static const int nameSize = 16;
     6     static const char name[nameSize];
     7 };
     8 // 文本文件
     9 const int Account::nameSize;    // 必需
    10 const char Account::name[nameSize] = "Savings Account";

    4) 静态成员函数只访问静态数据成员,不能为const和volatile,没有this指针。可以用  类名::静态成员函数名()  来使用。

    5) 类成员函数指针格式:   返回值类型 (类名::*函数指针名)(参数);          例:  Screen& (Screen::*Action)();

    可以使用     typedef Screen& (Screen::*Action)();             // 好难理解。。。

    然后下面就可以用Action了     Action default = &Screen::home;

    6) 静态类成员函数指针为普通指针。

  • 相关阅读:
    Android两级嵌套ListView滑动问题的解决
    关于Android适配华为等带有底部虚拟按键的解决方案
    更加成熟的领导力素质和学习敏感度
    完美解决ScollView内嵌ListView的问题
    Gson序列化问题导致的内存溢出,tip:Background sticky concurrent mark sweep GC freed
    从功能实现到实现设计
    iOS面试题汇总
    2017计算机专业大学排名
    Buffer.from()
    Buffer.isBuffer()详解
  • 原文地址:https://www.cnblogs.com/warrior2005/p/4447582.html
Copyright © 2020-2023  润新知