【发布时间】:2011-12-22 17:44:38
【问题描述】:
我正在尝试解决一个涉及命名空间、静态数据成员和函数的简单硬件问题。我收到一个未解决的外部符号错误
Error 1 error LNK2001: unresolved external symbol "private: static double JWong::SavingsAccount::annualInterestRate" (?annualInterestRate@SavingsAccount@JWong@@0NA) SavingsAccount.obj SavingsAccount
而且我不明白为什么会出现此错误。与导致此错误的常规数据成员相比,也许我对静态变量一无所知。这是我的代码:
SavingsAccount.h 文件
#ifndef JWONG_SAVINGSACCOUNT_H
#define JWONG_SAVINGSACCOUNT_H
namespace JWong
{
class SavingsAccount
{
public:
// default constructor
SavingsAccount();
// constructor
SavingsAccount(double savingsBalance);
double getSavingsBalance();
void setSavingsBalance(double savingsBalance);
double calculateMonthlyInterest();
// static functions
static void modifyInterestRate(double newInterestRate);
static double getAnnualInterestRest();
private:
double savingsBalance;
// static members
static double annualInterestRate;
};
}
#endif
SavingsAccount.cpp 文件
#include <iostream>
#include "SavingsAccount.h"
// default constructor, set savingsBalance to 0
JWong::SavingsAccount::SavingsAccount() : savingsBalance(0)
{}
// constructor
JWong::SavingsAccount::SavingsAccount(double savingsBalance) : savingsBalance(savingsBalance)
{}
double JWong::SavingsAccount::getSavingsBalance()
{
return savingsBalance;
}
void JWong::SavingsAccount::setSavingsBalance(double savingsBalance)
{
this->savingsBalance = savingsBalance;
}
// returns monthly interest and sets savingsBalance to new amount
double JWong::SavingsAccount::calculateMonthlyInterest()
{
double monthlyInterest = savingsBalance * SavingsAccount::annualInterestRate / 12;
setSavingsBalance(savingsBalance + monthlyInterest);
return monthlyInterest;
}
void JWong::SavingsAccount::modifyInterestRate(double newInterestRate)
{
SavingsAccount::annualInterestRate = newInterestRate;
}
double JWong::SavingsAccount::getAnnualInterestRest()
{
return SavingsAccount::annualInterestRate;
}
【问题讨论】:
标签: c++