在构造函数中为创建的每个对象更改类变量

时间:2013-11-14 14:41:11

标签: c++ constructor private

我是c ++的新手。我想创建银行帐户。我希望第一个创建的银行帐户的帐号为100000,第二个应该有100001,第三个应该有100002,依此类推。 我写了一个程序,但“数字”的值不会改变。每个银行帐户的数量都是100000.我不知道如何解决这个问题。

.h-File

#include <iostream>
#include <string>
using namespace std;
#ifndef _ACCOUNT_H
#define _ACCOUNT_H


class account
{
private:
    string name;
    int accNumber;
    int number= 100000;
    double balance;
    double limit;

public:
    void setLimit(double limit);
    void deposit(double amount);
    bool withdraw(double amount);
    void printBalance();
    account(string name);
    account(string name, double limit);
};

的.cpp-文件

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

account::account(string name) {
    this->name= name;
    accNumber= number;
    number++;
    balance= 0;
    limit = 0;
}

account::account(string name, double amount) {
    this->name= name;
    accNumber = number;
    number++;
    balance= 0;
    limit = amount;
}

void account::setLimit(double limit) {
    this->limit = limit;
}
.
.
.
.
.

3 个答案:

答案 0 :(得分:0)

您将number定义为一个简单的成员。如果您希望它是类变量,则必须将number更改为

.h-File

class account {
static int number;
};

.cpp-File

int account::number = 100000;

答案 1 :(得分:0)

number成为static数据成员,并在构造函数中使用accNumber初始化number++

答案 2 :(得分:0)

您可以使用静态变量执行此操作。

这是一个例子:

A.H

class A {
public:
  A();
  int getId() {
    cout << count_s;
  }
private:
  int id_;
  static int count_s;
}  

A.cpp

int A::count_s = 100000;

A::A() : id_(count_s++) {}