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) 静态类成员函数指针为普通指针。

posted on 2015-04-22 15:21  记不住  阅读(115)  评论(0编辑  收藏  举报

导航