我想计算使用某个构造函数创建的对象的数量。我之前用C#
这样的语言完成了这个,所以我创建了一个static int
变量,我在构造函数中递增。
在我向您展示代码之前 - 这是编译错误:
严重级代码描述项目文件行抑制状态 错误LNK2001未解析的外部符号“private:static int Bill :: count_of_created_bills”(?count_of_created_bills @ Bill @@ 0HA)Ausgabenverwaltung c:\ Users \ xy \ documents \ visual studio 2017 \ Projects \ Ausgabenverwaltung \ Ausgabenverwaltung \ Ausgabenverwaltung.obj 1
以下是代码:
#pragma once
class Bill
{
private:
static int count_of_created_bills;
int id; // Unique Identification
double ammount; // Ammount of bill
int month; // Month of bill (January = 0, February = 1 ...)
int type_of_spending; // Type of spending (Food = 0 ...)
public:
Bill(int a, int m, int t):ammount(a), month(m), type_of_spending(t)
{
count_of_created_bills++;
id = count_of_created_bills;
}
};
如果我包含这一行,则会发生编译错误:
Bill b(1, 2, 3);
答案 0 :(得分:1)
你忘了添加初始化:
Bill::Bill(int a, int m, int t):ammount(a), month(m), type_of_spending(t)
{
std::cout << "::Ros-App!" << Foo::count_of_created_bills << std::endl;
Foo::count_of_created_bills++;
id = count_of_created_bills;
}
int Bill::count_of_created_bills = 0;