我正在创建一个小程序来进行计费。我试图在另一个源文件中访问在头文件中声明的静态成员 static double total。因为我的第一门语言是Java,所以我无法解决C++中的问题。
当我尝试时,我得到了以下错误:
bill.cpp(16): error C2655: 'BillItem::total': 定义或重新声明在当前作用域非法 bill.h(8): note: 参见“BillItem::total”的声明 bill.cpp(16): error C2086: 'double BillItem::total': 重定义 bill.h(8): note: 参见“total”的声明
如何使它可用?谷歌搜索这个错误没有帮助。
我想实现的是在结构体中创建一个静态双精度变量,该变量将对所有结构体实例通用。我需要在另一个源文件中访问这个静态变量,在那里我将进行计算。
Bill.h
当我尝试时,我得到了以下错误:
bill.cpp(16): error C2655: 'BillItem::total': 定义或重新声明在当前作用域非法 bill.h(8): note: 参见“BillItem::total”的声明 bill.cpp(16): error C2086: 'double BillItem::total': 重定义 bill.h(8): note: 参见“total”的声明
如何使它可用?谷歌搜索这个错误没有帮助。
我想实现的是在结构体中创建一个静态双精度变量,该变量将对所有结构体实例通用。我需要在另一个源文件中访问这个静态变量,在那里我将进行计算。
Bill.h
#pragma once
struct BillItem
{
public:
static double total;
int quantity;
double subTotal;
};
Bill.cpp
#include<iostream>
#include "Item.h"
#include "Bill.h"
void createBill() {
double BillItem::total = 10;
cout << BillItem::total << endl;
}
MainCode.cpp
#include <iostream>
#include "Bill.h"
int main() {
createBill();
return 0;
}
double BillItem::total;
放在结构体之外,对吧? - NathanOliverdouble BillItem::total = 10;
中删除double
。类型名称仅在变量声明中使用,而不是每次引用时都使用。 - patatahooligan