主题:关于类的静态变量的问题
1 class SavingAccount
2 {
3 private:
4 char m_name[40]; // 存户姓名
5 char m_addr[60]; // 存户地址
6 double m_total; // 存款额
7 static double m_rate; // 利率
8 ...
9 public:
10 static void setRate(double newRate) { m_rate = newRate; }
11 ...
12 };
13 double SavingAccount::m_rate = 0.0075; // 设置 static 成员变量的初值
14 void main()
15 {
16 SavingAccount::setRate(0.0074); // 直接调用类別的 static 成员函数
17 SavingAccount myAccount;
18 myAccount.setRate(0.0074); // 通过对象调用 stati c 成员函数
19 }
我在看深入浅出MFC时前面讲了
// 第一种存取方式
void main()
{
SavingAccount::m_rate = 0.0075; // 欲此行成立,须把m_rate 改为public
}
// 第二种存取方式
void main()
{
SavingAccount myAccount;
myAccount.m_rate = 0.0075; // 欲此行成立,须把m_rate 改为public
}
但此处第13句不大理解,不是说私有的变量(包括静态的私有变量)是不能再其他位置赋值的吗?
2 {
3 private:
4 char m_name[40]; // 存户姓名
5 char m_addr[60]; // 存户地址
6 double m_total; // 存款额
7 static double m_rate; // 利率
8 ...
9 public:
10 static void setRate(double newRate) { m_rate = newRate; }
11 ...
12 };
13 double SavingAccount::m_rate = 0.0075; // 设置 static 成员变量的初值
14 void main()
15 {
16 SavingAccount::setRate(0.0074); // 直接调用类別的 static 成员函数
17 SavingAccount myAccount;
18 myAccount.setRate(0.0074); // 通过对象调用 stati c 成员函数
19 }
我在看深入浅出MFC时前面讲了
// 第一种存取方式
void main()
{
SavingAccount::m_rate = 0.0075; // 欲此行成立,须把m_rate 改为public
}
// 第二种存取方式
void main()
{
SavingAccount myAccount;
myAccount.m_rate = 0.0075; // 欲此行成立,须把m_rate 改为public
}
但此处第13句不大理解,不是说私有的变量(包括静态的私有变量)是不能再其他位置赋值的吗?