c++ - C++ 新手:尝试从实现中学习单独的接口并得到错误:VSCode 中二进制表达式的操作数无效
问题描述
我正在学习与C++ 中的实现分离的接口并得到这个错误。
搜索它,但不明白我应该如何在我的代码中实现它。这是我的代码。
发票类.h:
#include<string>
using namespace std;
class InvoiceClass{
private:
int price;
int quantity;
string partName;
string partDescription;
public:
InvoiceClass(string, string, int, int);
void displayInvoice();
void setDetail(string, string, int, int);
};
发票类.cpp:
#include<iostream>
#include"InvoiceClass.h"
using namespace std;
// Constructor function.
InvoiceClass::InvoiceClass(string partName, string partDescription, int qty, int price){
price = price;
quantity = qty;
partName = partName;
partDescription = partDescription;
}
void InvoiceClass::setDetail(string partName, string partDescription, int qty, int price){
price = price;
quantity = qty;
partName = partName;
partDescription = partDescription;
}
void InvoiceClass::displayInvoice(){
cout<<"Invoice"<<endl;
cout<<"Item "<<"Desc "<<"QTY "<<"Price"<<endl;
cout<<partName<<" "<<partDescription<<" "<<quantity<<" "<<price<<endl;
}
主.cpp:
#include<iostream>
#include"InvoiceClass.h"
using namespace std;
// Main function
int main(){
InvoiceClass customer("iMac", "By Apple", 1, 219000);
cout<<customer.displayInvoice()<<endl;
}
它应该打印 displayInvoice() 的输出。请帮我。
解决方案
你的功能不会返回,所以当你这样做时
cout<<customer.displayInvoice()
您基本上是说显示我的函数返回的内容,我认为您不想这样做
int main(){
InvoiceClass customer("iMac", "By Apple", 1, 219000);
customer.displayInvoice();
}
加:在你的构造函数中
编译器在您的构造函数输入中的“价格”与您的类的变量价格与其他变量相同之间混淆,因此您必须使用“this”来消除这种混淆
InvoiceClass::InvoiceClass(string partName, string partDescription, int qty, int price) {
this->price = price;
quantity = qty;
this->partName = partName;
this->partDescription = partDescription;
}
setDetail 函数中的相同问题
推荐阅读
- javascript - Javascript POST 函数不会通过 webpack 和 symfony 触发
- c - C指针警告的隐式转换
- jenkins - 如何在 Jenkins 管道中强制执行 Junit 报告?
- java - Android Studio 项目在移动到其他文件夹后被删除
- c - 如何用c编写shellcode?
- android - 错误:ADB 以退出代码 1 退出失败 [INSTALL_FAILED_VERSION_DOWNGRADE]
- python - 如何解决有关“列表不可调用”的问题
- java - 如何找到 jgrapht DirectedAcyclicGraph 中设置的根和叶
- node.js - 如何将中间件移动到服务层
- angular - 即使导入了 Bootstrap 的 js 元素,它们也无法正常工作