zoukankan      html  css  js  c++  java
  • 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) 静态类成员函数指针为普通指针。

  • 相关阅读:
    uva10986 堆优化单源最短路径(pas)
    动态规划②——线性动态规划(背包)
    UVA567
    动态规划①——记忆化搜索
    网络号与主机号的区分与计算(转)
    故障处理-ORA-00376/ORA-01110
    Oracle的自动统计信息不收集直方图的信息
    Oracle 11g的Redo Log和Archive Log的分析方法
    SQL优化 1
    oracle 11g 通过在线重定义方式修改表结构
  • 原文地址:https://www.cnblogs.com/warrior2005/p/4447582.html
Copyright © 2011-2022 走看看