繁体   English   中英

'class' 类型重定义拒绝

[英]'class' type redefinition rejection

我的两个班级有问题,我的帐户文件有问题。 我不完全确定如何 go 用我认为被定义两次的类修复它。 我查看了有关如何修复它的其他建议,但我不确定 go 在哪里。 所有错误都说是“帐户:”“类”类型重新定义

帐号.h

#include <string>
class Account
{
private:
    unsigned int accountNumber;
    std::string firstName, lastName;
    double balance;
    static unsigned int count;

public:
    Account();
    void setFirstName(std::string fName);
    void setLastName(std::string lName);
    void setBalance(double inBalance);
    void display();
};

这将是主文件

帐号.cpp

#include "Account.h"
#include <iostream>
using namespace std;

//Initializes the static counter set equal to 0
unsigned int Account::count = 0;

//Sets up a default constructor
Account::Account()
{
    count++;
    //Set accountNumber to count
    accountNumber = count;
}

//Sets up the first name
void Account::setFirstName(std::string fName)
{
    firstName = fName;
}

//Sets up the last name
void Account::setLastName(std::string lName)
{
    lastName = lName;
}

//Sets up the balance
void Account::setBalance(double inBalance)
{
    balance = inBalance;
}

//Displays the details of the Account
void Account::display()
{
    cout << fixed;
    cout.precision(2);
    cout << "Balance: " << balance << endl;
    cout << "Account: " << accountNumber << endl;
    cout << "First Name: " << firstName << endl;
    cout << "Last Name: " << lastName << endl;
}

您需要在 header 文件中包含守卫

#ifndef ACCOUNT_H_
#define ACCOUNT_H_
#include <string>
class Account
{
private:
    unsigned int accountNumber;
    std::string firstName, lastName;
    double balance;
    static unsigned int count;

public:
    Account();
    void setFirstName(std::string fName);
    void setLastName(std::string lName);
    void setBalance(double inBalance);
    void display();
};
#endif

这可以防止 header 在一个文件中被包含两次

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM